home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / demos / retinarave / flash38.s < prev    next >
Text File  |  1980-01-03  |  66KB  |  2,421 lines

  1. ;Retina burn source code written by S.Smith (CYLON/DIMENSION X)  hope you 
  2. ;like the demo.
  3. ;If you like any routine in this demo please use it your self I don't mind.
  4. ;A credit in your demo would not go amiss if you do.
  5. ;the demo is currently configed for a 1200 to set it back to 500 config
  6. ;just set dmawait in ptplay1200.i to 300.
  7. ;As you will discover some of my code is commented (shock horror) I hope it
  8. ;helps.
  9. ;
  10. ;Anyone wishing to swap source code PLEASE NOTE SEND ONLY YOUR OWN SOURCE
  11. ;I DO NOT WANT ANY RIPPED OFF SOURCE OR RESOURCED STUFF THANK YOU VERY MUCH
  12. ;I BELIEVE IN SHARING ANY KNOWLEDGE I GAIN, BUT I RESPECT ANY CODERS WISH
  13. ;TO KEEP THEIR CODE PRIVATE OK.
  14. ;
  15. ;PS yes some of the coding is not optimised and maybe some of it could be done
  16. ;better but in the end it does work and doesn't crash on any machine I've
  17. ;tried it on which is more than I can say for many other demos.
  18. ;
  19. ;Message to VECTOR DEMO CODERS boooooooorrrrrrrrrrrrrrinnnnggggggggg
  20. ;no more please I really do not want to see a 1200000000445475457 face
  21. ;wobbly glenz, the prospect of seeing one makes me reboot my machine.
  22. ;DO SOMETHING LIVELY SOME THING WITH A BIT OF GO IN IT AND NO MORE BLOODY
  23. ;SPACESHIPS.
  24. ;
  25. ;Possible influences on this demo
  26. ;
  27. ;hypnotic hammer, bubrain, kgb megademo.
  28. ;
  29. ;jesus on e's wasn't written when this demo was released.
  30.  
  31.  
  32.  
  33.  
  34.  
  35.     incdir "coding:projects/source/retinademo/"
  36. ;*-------------------------------------------------------------------------------*
  37.     include include/hardware/custom.i
  38.     include include/hardware/dmabits.i
  39.     include include/libraries/dos_lib.i
  40.     include include/libraries/dos.i
  41.     include include/exec/exec_lib.i
  42.     include include/exec/nodes.i
  43.     include include/exec/memory.i
  44. ;*-------------------------------------------------------------------------------*
  45. ;                              USER DEFINES
  46. ;*-------------------------------------------------------------------------------*
  47. custom     equ     $dff000
  48. ;*-------------------------------------------------------------------------------*
  49. ;                              PROGRAMME START
  50. ;*-------------------------------------------------------------------------------*
  51.     section startup_code,code
  52. ;*-------------------------------------------------------------------------------*
  53.     move.l    #text,textpos        set text pos to start
  54.     move.l    #backdr1,back_ptr    set back drop to start pic
  55.     move.l    #fl1,ack_ptr    set back drop to start pic
  56.     move.l    #collist,x_ptr
  57.     move.l    #introg+10240,screenpos
  58.     move.l    #greets,greet_ptr
  59. ;*-------------------------------------------------------------------------------*
  60.     move.l 4.w,a6            move exec.lib base addr a6
  61.     move.l    #anim_data,anim_ptr    move start of data in to the anim ptr
  62.  
  63.     jsr     _LVOForbid(a6)        suspend all tasks
  64. ;*-------------------------------------------------------------------------------*
  65.     lea glib,a1            point a1 2 text for graphic lib
  66.     moveq #0,d0            clr d0
  67.     move.l 4.w,a6            move exec.lib base addr a6
  68.  
  69.     jsr     _LVOOpenlibrary(a6)    open library
  70.  
  71.     tst d0                
  72.     beq.w errorgfx            zero retcode=error opening
  73.  
  74.     move.l d0,gfxlib        store gfx lib address
  75. ;*-------------------------------------------------------------------------------*
  76.     lea dlib,a1            point a1 2 text for dos lib
  77.     moveq #0,d0
  78.     move.l 4.w,a6            move exec.lib base addr a6
  79.  
  80.     jsr     _LVOOpenlibrary(a6)    open library
  81.  
  82.     tst d0
  83.     beq.w errordos            zero retcode=error opening
  84.  
  85.     move.l d0,doslib        store dos lib address
  86. ;*-------------------------------------------------------------------------------*
  87. ;    lea introp,a0            move address of colour table into a0
  88. ;    lea intro_list,a1        move addr colour list in copper int a1
  89. ;    move.w #31,d0            there are 16 colours in colour table
  90. ;
  91. ;intro_again:
  92. ;    move.w (a0)+,2(a1)        move a color in col tab into copper
  93. ;    addq.l #4,a1            add 4 2 addr in copper 4 next color
  94. ;    dbf d0,intro_again        do it again if less than 16 cols done
  95. ;*-------------------------------------------------------------------------------*
  96.     move.l #dummysprite,d0        move address of blank sprite into d0
  97.     move.w d0,sprite+6        put lo word of addr in copper
  98.     move.w d0,mirsprite+6        put lo word of addr in copper
  99.     move.w d0,intro_sprite+6    put lo word of addr in copper
  100.  
  101.     swap d0                
  102.     move.w d0,sprite+2        put high word of addr in copper
  103.     move.w d0,mirsprite+2        put high word of addr in copper
  104.     move.w d0,intro_sprite+2    put high word of addr in copper
  105.  
  106.     bsr    bass_off
  107. ;*-------------------------------------------------------------------------------*
  108.     move.l #TEXT_screen,d0        put addr of you ilbm graphic in d0
  109.  
  110.     move.w d0,bitplanes+p0l        put lo word of first bp in to bppointer
  111.     move.w d0,replanes+p0l        put lo word of first bp in to bppointer
  112.     swap d0                in copper list
  113.     move.w d0,bitplanes+p0h        put hi word of first bp into bppointer
  114.     move.w d0,replanes+p0h        put hi word of first bp into bppointer
  115.     
  116.     move.l #back_pic,d0        put addr of you ilbm graphic in d0
  117.  
  118.     move.w d0,bitplanes+p1l        put lo word of first bp in to bppointer
  119.     swap d0                in copper list
  120.     move.w d0,bitplanes+p1h        put hi word of first bp into bppointer
  121.  
  122.     move.l    #blank,d0        fill in blanks.
  123.  
  124.     move.w d0,blank1+p0l        put lo word of first bp in to bppointer
  125.     move.w d0,blank2+p0l        put lo word of first bp in to bppointer
  126.     swap d0                in copper list
  127.     move.w d0,blank1+p0h        put hi word of first bp into bppointer
  128.     move.w d0,blank2+p0h        put hi word of first bp into bppointer
  129.  
  130.     move.l #screen,d0        put addr of you ilbm graphic in d0
  131.  
  132.     move.w d0,gfxplanes+p0l        put lo word of first bp in to bppointer
  133.     swap d0                in copper list
  134.     move.w d0,gfxplanes+p0h        put hi word of first bp into bppointer
  135.     swap d0
  136.     
  137.     move.l #xxxx,d0            put addr of you ilbm graphic in d0
  138.  
  139.     move.w d0,mirror_plane+p0l
  140.     swap d0
  141.     move.w d0,mirror_plane+p0h        scn address in copperlist
  142. ;*-------------------------------------------------------------------------------*
  143.     move.l #introg,d0        put addr of you ilbm graphic in d0
  144.  
  145.     move.w d0,intro_planes+p0l    put lo word of first bp in to bppointer
  146.     swap d0                in copper list
  147.     move.w d0,intro_planes+p0h    put hi word of first bp into bppointer
  148.     swap d0
  149.     
  150.     add.l #40,d0
  151.     move.w d0,intro_planes+p1l
  152.     swap d0
  153.     move.w d0,intro_planes+p1h        scn address in copperlist
  154.     swap d0
  155.     
  156.     add.l #40,d0
  157.     move.w d0,intro_planes+p2l
  158.     swap d0
  159.     move.w d0,intro_planes+p2h        scn address in copperlist
  160.     swap d0
  161.     
  162.     add.l #40,d0
  163.     move.w d0,intro_planes+p3l
  164.     swap d0
  165.     move.w d0,intro_planes+p3h        scn address in copperlist
  166.     swap d0
  167.  
  168.     add.l #40,d0
  169.     move.w d0,intro_planes+p4l
  170.     swap d0
  171.     move.w d0,intro_planes+p4h        scn address in copperlist
  172. ;*-------------------------------------------------------------------------------*
  173.     move.l gfxlib,a6        gfx lib address
  174.     add.l #$32,a6            address of old copper
  175.     move.l    a6,cgfxlib
  176.     move.w #$80,$dff096        dma ctrl (disable copper)
  177.     move.l (a6),oldcopper        save old copper address
  178.     move.l #intro_copper,(a6)    replace old copper address with my 
  179. ;                    copper list (lower down in my code)
  180.  
  181.     move.w #$8080,$dff096        dma ctrl (enable copper)
  182.     move.w #$8010,$dff09a        copper interupt enabled
  183.  
  184.     move.l $6c.w,into_interupt    store old level 3 interupt
  185.     move.l $6c.w,fred_interupt    store old level 3 interupt
  186.     move.l $6c.w,old_interupt    store old level 3 interupt
  187.  
  188.     move.l #intro_interupt,$6c.w    point to my interupt rountine
  189. ;*-------------------------------------------------------------------------------*
  190.     lea    black1,a1
  191.     lea    introp,a0
  192.     lea    intro_list,a3
  193.     move.l    #31,d7
  194.     bsr     fade
  195.  
  196.     move.w    #200,Intro_counter
  197. iouse:    
  198.     btst     #6,$bfe001        test mousebutton
  199.     beq.w     jmouse
  200.     tst.w     intro_counter
  201.     bne.w     iouse
  202. jmouse    
  203.  
  204.     lea    black1,a1
  205.     lea    black2,a0
  206.     lea    intro_list,a3
  207.     move.l    #31,d7
  208.     bsr     fade
  209.     
  210. ;*-------------------------------------------------------------------------------*
  211.     lea    mt_data,a0
  212.     bsr.w     mt_init            setup play routine
  213. ;*-------------------------------------------------------------------------------*
  214.     move.w #$80,$dff096        dma ctrl (disable copper)
  215.     move.l #my_copper,(a6)        replace old copper address with my 
  216. ;                    copper list (lower down in my code)
  217.  
  218.     move.w #$8080,$dff096        dma ctrl (enable copper)
  219.     move.w #$8010,$dff09a        copper interupt enabled
  220.  
  221.  
  222.     move.l #new_interupt,$6c.w    point to my interupt rountine
  223. ;*-------------------------------------------------------------------------------*
  224.     move.w    #100,Intro_counter
  225. imouse:    tst.w     intro_counter
  226.     bne.w     imouse
  227.  
  228. mouse    btst     #6,$bfe001        test mousebutton
  229.     bne.w     mouse
  230.  
  231.     bsr.w     mt_end            music end routine
  232.     jsr    bass_off        turn off sprites
  233.     move.w #$80,$dff096        dma ctrl (disable copper)
  234.     move.l #my_copper,(a6)        replace old copper address with my 
  235. ;                    copper list (lower down in my code)
  236.     move.w    #$F00,colourlist+6      red anim colour
  237.     move.w     #$8080,$dff096        dma ctrl (enable copper)
  238.     move.w     #$8010,$dff09a        copper interupt enabled
  239.  
  240.  
  241.     move.l     #fredinterupt,$6c.w    point to my interupt rountine
  242.     move.w    #1,gfxcmp
  243.     move.l  #spin_data,spin_ptr
  244.     move.w    #$00,bdr1+2      red anim colour
  245.     move.w    #$00,bdr1+6      red anim colour
  246.     move.w    #$00,colourlist+2      red anim colour
  247.     move.w    #$0,text_cols+2      red anim colour
  248.     move.w    #$0,text_cols+6      red anim colour
  249.     move.w    #$0,lowcol+2      red anim colour
  250.     move.w    #$00,bdr2+2      red anim colour
  251.  
  252. waitend:    
  253.     tst.w    spindone
  254.     beq    waitend
  255. waitnextblank:
  256.     tst.w    vbl
  257.     beq    waitnextblank
  258.     eor.w    #$ffff,vbl
  259.     sub.w    #$100,colourlist+6
  260.     tst.w    colourlist+6
  261.     bne    waitnextblank
  262.     
  263.     lea    mt_data2,a0
  264.     bsr.w     mt_init            setup play routine
  265.     
  266.  
  267.     move.w    #0,moddulo+2
  268.     move.w    #0,moddulo+6
  269.     lea    plane_start,a1
  270.     lea    plane_store,a0
  271.     move.l    (a0)+,(a1)+
  272.     move.l    (a0)+,(a1)+
  273.     move.l    (a0)+,(a1)+
  274.     move.l    (a0)+,(a1)+
  275.  
  276.     move.l    #backdr1,a0        move the address of first screen
  277.     lea.l    introg,a1        dest address
  278.     move.l     #2559,d1        size -1
  279. a_loop:
  280.     move.l    (a0)+,(a1)+        move a longword
  281.     dbr    d1,a_loop        do it until all done
  282.  
  283.     move.l     #introg+10240,d0    put addr of you ilbm graphic in d0
  284.     move.l     d0,a1            put addr of you ilbm graphic in d0
  285.  
  286.     move.l     #(2559*2)+1,d1        size -1
  287. b_loop:
  288.     move.l    #0,(a1)+        move a longword
  289.     dbr    d1,b_loop        do it until all done
  290.  
  291.  
  292.     move.w     d0,intro_planes+p1l
  293.     swap     d0
  294.     move.w     d0,intro_planes+p1h    scn address in copperlist
  295.  
  296.     move.w    #$00,intro_list+6    blue fg
  297.     eor.w    #$ccc,intro_list+38    change colour
  298.     bsr    plonk
  299.     eor.w    #$FFFF,toggle
  300.  
  301.     move.l gfxlib,a6        gfx lib address
  302.     add.l #$32,a6            address of old copper
  303.     move.w #$80,$dff096        dma ctrl (disable copper)
  304.     move.l #intro_copper,(a6)    replace old copper address with my 
  305. ;                    copper list (lower down in my code)
  306.  
  307.     move.w #$8080,$dff096        dma ctrl (enable copper)
  308.     move.w #$8010,$dff09a        copper interupt enabled
  309.  
  310.     move.l #intro_interupt,$6c.w    point to my interupt rountine
  311.  
  312. ;*-------------------------------------------------------------------------------*
  313. wnextblank:
  314.     tst.w    vbl
  315.     beq    wnextblank
  316.     eor.w    #$ffff,vbl
  317.     add.w    #$001,intro_list+6
  318.     cmp.w    #$009,intro_list+6
  319.     bne    wnextblank
  320. ;*-------------------------------------------------------------------------------*
  321.     move.w    #100,Intro_counter
  322. hmouse:    tst.w     intro_counter
  323.     bne.w     hmouse
  324.     
  325.  
  326. fmouse    btst     #6,$bfe001        test mousebutton
  327.     bne.w     fmouse
  328.  
  329. wxtblank:
  330.     tst.w    vbl
  331.     beq    wxtblank
  332.     eor.w    #$ffff,vbl
  333.     sub.w    #$111,intro_list+38
  334.     tst.w    intro_list+38
  335.     bne    wxtblank
  336.  
  337. wextblank:
  338.     tst.w    vbl
  339.     beq    wextblank
  340.     eor.w    #$ffff,vbl
  341.     sub.w    #$001,intro_list+6
  342.     tst.w    intro_list+6
  343.     bne    wextblank
  344.  
  345.     bchg     #1,$bfe001        audio filter toggle
  346.  
  347. ;*-------------------------------------------------------------------------------*
  348.     move.l old_interupt,$6c.w    restore old level 3 interupt
  349.     move.w #$10,$dff09a        disable level 3 interupt
  350.     
  351.     move.l gfxlib,a6        put the base address of gfx library >a6
  352.  
  353.     add.l #$32,a6            add $32 to base addr of lib as this is
  354. ;                    the mem location that points to active
  355. ;                    copper list
  356.  
  357.     move.w #$0080,$dff096        dma ctrl disable copper must be done
  358. ;                    before restoring old copper
  359.  
  360.     move.l oldcopper,(a6)        retore old copper
  361.     move.w #$8080,$dff096        dma enable copper
  362.  
  363.     move.l doslib,a1        close dos lib
  364.     move.l 4.w,a6
  365.     jsr _LVOCloselibrary(a6)
  366.     bsr.w mt_end            music end routine
  367.  
  368. ;*-------------------------------------------------------------------------------*
  369. errordos:    
  370.     move.l gfxlib,a1        close graphics lib
  371.     move.l 4.w,a6
  372.     jsr _LVOCloselibrary(a6)
  373. ;*-------------------------------------------------------------------------------*
  374. errorgfx:
  375.     move.l 4.w,a6            enable multitasking again
  376.     jsr _LVOpermit(a6)
  377. ;*-------------------------------------------------------------------------------*
  378. error    moveq #0,d0
  379.     rts
  380. ;*-------------------------------------------------------------------------------*
  381.  
  382.  
  383. fade
  384.     swap d7
  385.     move #14,d0
  386. bright
  387.     moveq #2,d1
  388. nibble
  389.     swap d7
  390.     move d7,d2
  391.     swap d7
  392. col
  393.     move d2,d3
  394.     lsl #1,d3
  395.     move 0(a0,d3.w),d4
  396.     move 0(a1,d3.w),d5
  397.     cmp #2,d1
  398.     bne.w not2
  399.  
  400.     and #$f00,d4
  401.     and #$f00,d5
  402.     cmp d5,d4
  403.     beq.w doneadd
  404.     blo.w sub2
  405.     add #$100,0(a1,d3.w)
  406.     bra.w doneadd
  407. sub2
  408.     sub #$100,0(a1,d3.w)
  409.     bra.w doneadd
  410. not2
  411.     cmp #1,d1
  412.     bne.w not1
  413.     and #$f0,d4
  414.     and #$f0,d5
  415.     cmp d5,d4
  416.     beq.w doneadd
  417.     blo.w sub1
  418.     add #$10,0(a1,d3.w)
  419.     bra.w doneadd
  420. sub1
  421.     sub #$10,0(a1,d3.w)
  422.     bra.w doneadd
  423. not1
  424.     cmp #0,d1
  425.     bne.w doneadd
  426.     and #$f,d4
  427.     and #$f,d5
  428.     cmp d5,d4
  429.     beq.w doneadd
  430.     blo.w sub0
  431.     addq #$1,0(a1,d3.w)
  432.     bra.w doneadd
  433. sub0
  434.     subq #$1,0(a1,d3.w)
  435. doneadd
  436.     dbra d2,col
  437. ; change immediate value in d6 the higher it is the slower the fade
  438.     moveq #1,d6
  439.     bsr.w pause
  440.  
  441.     move.l a1,a2
  442.     swap d7
  443.     move.w d7,d2
  444.     swap d7
  445.     move.l a3,-(sp)
  446.  
  447. copy3    move.w (a2)+,2(a3)
  448.     addq.l #4,a3
  449.     dbra d2,copy3
  450.  
  451.     move.l (sp)+,a3
  452.     
  453.     dbra d1,nibble
  454.  
  455.     dbra d0,bright
  456.     rts
  457.  
  458.  
  459. ;================================================
  460. ; pause
  461. ; d6.w = pause time in 1/50 sec
  462. ;================================================
  463.  
  464. pause
  465.     move.w vbl,d7
  466. waitframe
  467.     cmp vbl,d7
  468.     beq.w waitframe
  469.  
  470.     dbra d6,pause
  471.     rts
  472.  
  473.  
  474.  
  475.  
  476. **************************************************
  477. ; in interupt routine put:-
  478.  
  479.  
  480. ; in variables put:-
  481.  
  482.  
  483. **************************************************
  484.  
  485.  
  486.  
  487. ;*-------------------------------------------------------------------------------*
  488.  
  489. plonk:
  490.     move.l     greet_ptr,a1        move address of next char into a1    
  491.     cmp.b    #"@",(a1)
  492.     bne    no_scroll_pause
  493.     addq.l    #1,a1
  494.     move.w    #100,scroll_wait
  495. no_scroll_pause:
  496.     moveq.l    #0,d2
  497.  
  498.     move.l     screenpos,a0        load LINE pos on screen.
  499.     add.l    #10240,a0
  500.  
  501.     bsr.w wblit            clear line
  502.     move.l #$ffffffff,BLTAFWM+Custom
  503.     MOVE.W    #0,BLTADAT+CUSTOM
  504.     move.w #0,BLTDMOD+Custom
  505.     move.l a0,BLTDPT+Custom
  506.     move.w #%0000000111110000,BLTCON0+Custom
  507.     move.w #0,BLTCON1+Custom
  508.     move.w #(64*32)+20,BLTSIZE+Custom    32lines by 1 word
  509.  
  510. get_next_l:
  511.     move.b     (a1)+,d1        get char from scrolltext
  512.     add.w    #1,d2            add one line length counter
  513.     cmp.b    #10,d1            are we at eol
  514.     bne.w    get_next_l            no read another ltr
  515.  
  516.     subq.l    #1,d2            remove cr from counter for disp loop
  517.     move.l  #20,d4            1/2 scrn size in bytes
  518.     sub.l    d2,d4            1/2 txt len - 1/2 scrn width = offset
  519.  
  520.     add.l    d4,a0            add offset to the base addr of screen
  521.  
  522.     move.l     greet_ptr,a1        move address of next char into a1    
  523.     cmp.b    #"@",(a1)
  524.     bne    no_scroll_paus
  525.     addq.l    #1,a1
  526. no_scroll_paus:
  527.     moveq.l #0,d1
  528.     moveq.l #0,d5
  529. nextchar:
  530.     move.b     (a1)+,d1        char into d1
  531.     tst.b     d1            if val in d0 is 0
  532.     beq     textended            it is the end of the text
  533.     move.l     a1,greet_ptr
  534.     cmp.b     #10,d1            is it eol
  535.     beq.w     eol            end of line exit routine    
  536.     sub.l     #32,d1            remove ctrl codes from ascii char value
  537.     lsl.l     d1            mult by two to get off. in font.
  538.     lea     font16,a2        load base address of font.
  539.     add.l d1,a2            add offset to base address.
  540.     bsr.w doblt            go blit char from font to screen.
  541.     addq.l #2,a0            add 2 bytes for pos of next char.
  542.     bra.w nextchar
  543. eol:
  544.     rts
  545.  
  546. textended:    
  547.     move.l    #greets,greet_ptr
  548.     rts
  549.  
  550. doblt    
  551.  
  552.     bsr.w wblit
  553.     move.l #$ffffffff,BLTAFWM+Custom
  554.     move.w #39,BLTDMOD+Custom
  555.     move.w #(91*2)-1,BLTAMOD+Custom
  556.     move.l a0,BLTDPT+Custom
  557.     move.l a2,BLTAPT+Custom
  558.     move.w #%0000100111110000,BLTCON0+Custom
  559.     move.w #0,BLTCON1+Custom
  560.     move.w #(64*32)+1,BLTSIZE+Custom    32lines by 1 word
  561.  
  562.     rts
  563. copyline:
  564.  
  565.     move.l     screenpos,a3        load pos on screen.
  566.     move.l    a3,a4            used for copy blit
  567.     sub.l    #40*32,a3
  568.     add.l    #10240,a4
  569.  
  570.     bsr.w wblit
  571.     move.l #$ffffffff,BLTAFWM+Custom
  572.     move.w #0,BLTDMOD+Custom
  573.     move.w #0,BLTAMOD+Custom
  574.     move.l a3,BLTDPT+Custom
  575.     move.l a4,BLTAPT+Custom
  576.     move.w #%0000100111110000,BLTCON0+Custom
  577.     move.w #0,BLTCON1+Custom
  578.     move.w #(64*32)+20,BLTSIZE+Custom    32lines by 20 words
  579.     rts
  580.  
  581.  
  582.  
  583.  
  584. wblit:
  585.     btst.b #DMAB_BltDone-8,DMAConR+custom
  586. BlitWait1:
  587.     btst.b #DMAB_BltDone-8,DMAConR+Custom
  588.     bne.w BlitWait1
  589.     rts
  590. ;*-------------------------------------------------------------------------------*
  591. ;                            MY INTERUPT ROUTINE
  592. ;*-------------------------------------------------------------------------------*
  593. fredinterupt:
  594.     movem.l d0-d7/a0-a6,-(sp)    store registers
  595.     
  596.     
  597.     and.w     #$10,$dff01e        is the interupt a copper interupt?
  598.     beq.w     no_fred          if not skip copper routines
  599.     move.w     #$10,$dff09c        acknowledge interupt
  600.  
  601.     eor.w    #$ffff,vbl
  602.     cmp.w    #13,gfxcmp
  603.     bgt    still
  604.     sub.w    #1,gfxcount
  605.     tst.w     gfxcount
  606.     bne.b     no_spin
  607.     bsr.w    dospin2
  608.     sub.w    #1,acounter
  609.     tst.w    acounter
  610.     bne    notslow
  611.     move.w    #2,acounter
  612. still:
  613.     add.w    #1,gfxcmp
  614. speedslow:
  615.     cmp.w    #50,gfxcmp
  616.     blt    notslow
  617.     move.w    #$FFFF,spindone
  618. notslow:
  619.     move.w    gfxcmp,gfxcount
  620. no_spin:
  621. no_fred:
  622.     movem.l (sp)+,d0-d7/a0-a6    restore registers so code out of
  623. ;                    interupt does not cock up
  624.  
  625. fred_interupt:    equ *+2
  626.     jmp $12345678            jump to old routine
  627. ;*------------------------------------------------------------------------------
  628. ;    GFX spin routine 
  629. ;*------------------------------------------------------------------------------
  630. dospin2:
  631.     move.l    spin_ptr,a0        put ptr to anim sequ > a0
  632.     move.l    A0,d0            clr d0
  633.     cmp.l    #spin_fin,d0
  634.     blt     .inrange1
  635.     move.l    #spin_data,a0        move start of data in to the anim ptr
  636.     move.l    #spin_data,anim_ptr    move start of data in to the anim ptr
  637. .inrange1:
  638.     moveq.l    #0,d0            clr d0
  639.     move.b    (a0)+,d0        put anim sequ into d0
  640.     tst.b    d0            is it end of anim char?(0)
  641.     bne.w    .not_last_anim        no so skip next three insts
  642.     move.l    #spin_data,a0        move start of data in to the anim ptr
  643. .goforit:
  644.     move.b    (a0)+,d0        move fresh char to d0
  645. .not_last_anim:
  646.     move.l    a0,spin_ptr        store new ptr addr
  647.     move.l    #screen,d1        base addr of anims
  648.     sub.b    #1,d0            remove extra from d0
  649.     mulu    #5600,d0        multiply frame no. by frame size
  650.     add.l    d1,d0            add base addr to frame offset
  651. .put_new_bm:
  652.     move.w     d0,gfxplanes+p0l    put lo word of first bp in to bppointer
  653.     swap     d0            in copper list
  654.     move.w     d0,gfxplanes+p0h    put hi word of first bp into bppointer
  655.     swap d0
  656.     rts
  657. ;*-------------------------------------------------------------------------------*
  658. ;                            MY INTERUPT ROUTINE
  659. ;*-------------------------------------------------------------------------------*
  660. intro_interupt:
  661.     movem.l d0-d7/a0-a6,-(sp)    store registers
  662.     
  663.     
  664.     and.w     #$10,$dff01e        is the interupt a copper interupt?
  665.     beq.w     no_int          if not skip copper routines
  666.     move.w     #$10,$dff09c        acknowledge interupt
  667.  
  668.      eor.w     #$FFFF,vbl
  669.     sub.w    #1,intro_counter    
  670.     tst.w    toggle            are we at the second usage
  671.     bne    no_int            no then bog off
  672.     sub.w    #1,scroll_wait
  673.     tst.w    scroll_wait
  674.     bne    no_greet
  675.     move.w    #1,scroll_wait
  676.  
  677.     add.l    #40,screenpos        add a line
  678.     move.l    screenpos,d0        move current screen pos in
  679.     move.w     d0,intro_planes+p1l    and bop it to copper list
  680.     swap     d0
  681.     move.w     d0,intro_planes+p1h    scn address in copperlist
  682.  
  683.     moveQ.l    #0,d0
  684.     sub.w    #1,scrollcount        dec line scrolled by 1 
  685.     tst.w    scrollcount        have we scrolled 32 pix lines
  686.     bne    no_greet        no then no need to reset counter
  687.  
  688.     move.w    #32,scrollcount        restore line pix lines scrolled
  689.  
  690.     sub.b    #1,linecount        sub one from no lines scrolled
  691.     tst.b    linecount        has the screen reached its end yet?
  692.     bne    not_BOT            no then bog off
  693.  
  694.     bsr.w copyline            copy line
  695.     move.l    #introg+10240,screenpos    set to screen start
  696.  
  697.     move.b    #9,linecount
  698.     bsr    plonk            write line to be scrolled
  699.     bra    no_greet
  700. not_bot:
  701.  
  702.     bsr    plonk    
  703.     bsr.w copyline            go blit char from font to screen.
  704.  
  705. no_greet:
  706.  
  707.     bsr.w     mt_music        call music player
  708. no_int
  709.     movem.l (sp)+,d0-d7/a0-a6    restore registers so code out of
  710. ;                    interupt does not cock up
  711.  
  712. into_interupt:    equ *+2
  713.     jmp $12345678            jump to old routine
  714.  
  715. ;*-------------------------------------------------------------------------------*
  716. new_interupt
  717.     movem.l d0-d7/a0-a6,-(sp)    store registers
  718.     
  719.     
  720.     and.w     #$10,$dff01e        is the interupt a copper interupt?
  721.     beq.w     no_music        if not skip copper routines
  722.     move.w     #$10,$dff09c        acknowledge interupt
  723.  
  724.     sub.w    #1,intro_counter    
  725.     cmp.w    #$fff,equalizer3
  726.     bne.b    no_beat
  727.     addq.w    #2,beatcount
  728. no_beat:
  729.     cmp.w     #10,beatcount
  730.     bgt.b    ten
  731.     move.w    #1,wait
  732.     move.w     #$0,colourlist+2
  733.     jsr     strobe2
  734.     bsr.w    clang
  735.         jsr     hitthebass
  736.     bsr.w    bdrstrobe
  737.     jsr    Do_text
  738.     jmp    out
  739. ten:
  740.     cmp.w     #20,beatcount
  741.     bgt.b    twenty
  742.     jsr     strobe3
  743.     bsr.w    clang
  744.         jsr     hitthebass
  745.     bsr.w    bdrstrobe
  746.     jsr    Do_text
  747.     jmp    out
  748. twenty:
  749.     cmp.w     #30,beatcount
  750.     bgt.b    thirty
  751.     jsr     strobe4
  752.     move.w    #$FFF,bdr1+6
  753.     bsr.w    clang
  754.         jsr     hitthebass
  755.     jsr    strobe2
  756.     jsr    Do_text
  757.     jmp    out
  758. thirty:
  759.     cmp.w     #40,beatcount
  760.     bgt.b    forty
  761.     jsr     strobe5
  762.     jsr    strobe2
  763.     bsr.w    clang
  764.         jsr     hitthebass
  765.     move.w    #3,wait
  766.     jsr    Do_text
  767.     jmp    out
  768. forty:
  769.     cmp.w     #50,beatcount
  770.     bgt.b    fifty
  771.     jsr     strobe6
  772.     bsr.w    clang
  773.         jsr     hitthebass
  774.     jsr    Do_text
  775.     jmp    out
  776. fifty:
  777.     cmp.w     #60,beatcount
  778.     bgt.b    sixty
  779.     jsr     strobe8
  780.     bsr.w    bdrstrobe
  781.     bsr.w    clang
  782.         jsr     hitthebass
  783.     move.w    #$FFF,bdr1+6
  784.     jsr    strobe2
  785.     jsr    Do_text
  786.     jmp    out
  787. sixty:
  788.     cmp.w     #70,beatcount
  789.     bgt.b    seventy
  790.     move.w    #$FFF,bdr1+6
  791.     bsr.w    clang
  792.         jsr     hitthebass
  793.     move.w    #7,wait
  794.     jsr     strobe9
  795.     jsr    Do_text
  796.     jmp    out
  797. seventy:
  798.     cmp.w     #80,beatcount
  799.     bgt.b    eighty
  800.     move.l    cgfxlib,a6
  801.     move.l     #mirror_cop,(a6)    replace old copper address with my 
  802.     jsr     xbounce
  803.         jsr     hitthebass
  804.     jmp    no_gfx
  805. eighty:
  806.     cmp.w     #90,beatcount
  807.     bgt.b    ninety
  808.         jsr     hitthebass
  809.     tst.w    cytog
  810.     bne    rightcop
  811.     jsr    cyclemap
  812.     eor.w    #$FFFF,cytog
  813. rightcop:
  814.     jsr     cycle
  815.     jmp    no_gfx
  816. ninety:
  817.     eor.w    #$FFFF,cytog
  818.     move.l    a6,cgfxlib
  819.     move.l     #my_copper,(a6)        replace old copper address with my 
  820.     move.w     #$0,colourlist+2
  821.     move.w     #$0,Text_cols+2
  822.     move.w    #0,beatcount
  823.     sub.b    #1,cycount        change cycle routine
  824.     tst.b    cycount            check if 3 routine done
  825.     bne    out            no
  826.     move.b    #3,cycount        reset to routine 3
  827. out:
  828.     bsr.w    strobe1
  829.     bsr.w    back_strobe
  830.  
  831.     sub.w    #1,gfxcount
  832.     tst.w     gfxcount
  833.     bne.b     no_gfx
  834.     bsr.w    gfxchange
  835.     move.w    gfxcmp,gfxcount
  836. no_gfx:
  837.  
  838.     bsr.w     mt_music        call music player
  839.     
  840.     
  841. no_music
  842.     movem.l (sp)+,d0-d7/a0-a6    restore registers so code out of
  843. ;                    interupt does not cock up
  844.  
  845. old_interupt    equ *+2
  846.     jmp $12345678            jump to old routine
  847.  
  848. ;*-------------------------------------------------------------------------------*
  849.     include include/pt-playa1200.s    yep good old pt-play
  850. ;*-------------------------------------------------------------------------------*
  851. clang:
  852.     cmp.w    #$8,chan1
  853.     bne.w    nobass1
  854.     bsr.w    change_back
  855.     move.w    #0,chan1
  856.     rts    
  857. nobass1:
  858.     cmp.w    #$8,chan2
  859.     bne.w    nobass2
  860.     bsr.w    change_back
  861.     move.w    #0,chan2
  862.     rts    
  863. nobass2:
  864.     cmp.w    #$8,chan3
  865.     bne.w    nobass3
  866.     bsr.w    change_back
  867.     move.w    #0,chan3
  868.     rts    
  869. nobass3:
  870.     cmp.w    #$8,chan4
  871.     bne.w    nobass4
  872.     bsr.w    change_back
  873.     move.w    #0,chan4
  874.     rts
  875. nobass4:
  876.         bra    nothin_doin
  877. ;*-------------------------------------------------------------------------------*
  878. ;        backdrop swap
  879. ;*-------------------------------------------------------------------------------*
  880.  
  881. change_back:
  882.  
  883.     move.l     back_ptr,d0        move current screen 
  884.     cmp.l    #back_end,d0        are we past the last screen ?
  885.     bne.w    back_ok            no lets move on
  886.     move.l    #backdr1,D0        move the address of first screen
  887.     move.l    d0,back_ptr        and store it.
  888. back_ok:
  889.     move.l    d0,a0            source address
  890.     lea.l    back_pic,a1        dest address
  891.     move.l     #2559,d1        size -1
  892. bdr_loop:
  893.     move.l    (a0)+,(a1)+        move a longword
  894.     dbr    d1,bdr_loop        do it until all done
  895.     add.l    #10240,back_ptr        set ptr to next screen    
  896.     move.w    #100,bored
  897.     rts
  898.  
  899.  
  900. nothin_doin:
  901.     sub.w    #1,bored
  902.     tst.w    bored
  903.     bne    not_bored
  904.  
  905.     move.l     ack_ptr,d0        move current screen 
  906.     cmp.l    #fl_rend,d0        are we past the last screen ?
  907.     bne.w    back_okay        no lets move on
  908.     move.l    #fl1,D0        move the address of first screen
  909.     move.l    d0,ack_ptr        and store it.
  910. back_okay:
  911.     move.l    d0,a0            source address
  912.     lea.l    back_pic,a1        dest address
  913.     move.l     #2559,d1        size -1
  914. acopy_loop:
  915.     move.l    (a0)+,(a1)+        move a longword
  916.     dbr    d1,acopy_loop        do it until all done
  917.     add.l    #10240,ack_ptr        set ptr to next screen    
  918.     move.w    #3,bored
  919. not_bored:
  920.     rts
  921.     
  922. ;*-------------------------------------------------------------------------------*
  923. ;        Text display test
  924. ;*-------------------------------------------------------------------------------*
  925. do_text:
  926.     sub.w    #1,textcount
  927.     tst.w     textcount
  928.     bne.w     no_ext1
  929.     bsr.w     bigtext
  930.     move.w    #50,textcount
  931. no_ext1:
  932.     rts
  933.     
  934. ;*-------------------------------------------------------------------------------*
  935. ;               Test for let the bass kick sample.
  936. ;*-------------------------------------------------------------------------------*
  937.  
  938. hitthebass:
  939.     cmp.w    #$9,chan1
  940.     bne.w    .nobass1
  941.     bsr.w    bass_on
  942.     move.w    #0,chan1
  943.     rts    
  944. .nobass1:
  945.     cmp.w    #$9,chan2
  946.     bne.w    .nobass2
  947.     bsr.w    bass_on
  948.     move.w    #0,chan2
  949.     rts    
  950. .nobass2:
  951.     cmp.w    #$9,chan3
  952.     bne.w    .nobass3
  953.     bsr.w    bass_on
  954.     move.w    #0,chan3
  955.     rts    
  956. .nobass3:
  957.     cmp.w    #$9,chan4
  958.     bne.w    .nobass4
  959.     bsr.w    bass_on
  960.     move.w    #0,chan4
  961.     rts
  962. .nobass4:
  963.     sub.w    #1,bass_wait
  964.     tst.w    bass_wait
  965.     bne    no_bass_off
  966.     move.w    #$ffff,bass_wait
  967.     bsr    bass_off
  968. no_bass_off:
  969.         Rts
  970. bass_off:
  971.     move.l #dummysprite,d0        move address of blank sprite into d0
  972.     move.w d0,d_sprite1+6        put lo word of addr in copper
  973.     move.w d0,d_sprite2+6        put lo word of addr in copper
  974.     move.w d0,d_sprite3+6        put lo word of addr in copper
  975.     move.w d0,d_sprite4+6        put lo word of addr in copper
  976.     swap d0                
  977.     move.w d0,d_sprite1+2        put high word of addr in copper
  978.     move.w d0,d_sprite2+2        put high word of addr in copper
  979.     move.w d0,d_sprite3+2        put high word of addr in copper
  980.     move.w d0,d_sprite4+2        put high word of addr in copper
  981.     rts
  982. bass_on:
  983.     move.l     #ltbk_sprite1,d0    move address of blank sprite into d0
  984.     move.w     d0,d_sprite1+6        put lo word of addr in copper
  985.     swap     d0                
  986.     move.w     d0,d_sprite1+2        put high word of addr in copper
  987.     move.l     #ltbk_sprite2,d0    move address of blank sprite into d0
  988.     move.w     d0,d_sprite2+6        put lo word of addr in copper
  989.     swap     d0                
  990.     move.w     d0,d_sprite2+2        put high word of addr in copper
  991.     move.l     #ltbk_sprite3,d0    move address of blank sprite into d0
  992.     move.w     d0,d_sprite3+6        put lo word of addr in copper
  993.     swap     d0                
  994.     move.w     d0,d_sprite3+2        put high word of addr in copper
  995.     move.l     #ltbk_sprite4,d0    move address of blank sprite into d0
  996.     move.w     d0,d_sprite4+6        put lo word of addr in copper
  997.     swap    d0                
  998.     move.w     d0,d_sprite4+2        put high word of addr in copper
  999.     move.w    #30,bass_wait
  1000.     rts
  1001. ;*-------------------------------------------------------------------------------*
  1002. cyclemap:
  1003.     move.l #dummysprite,d0        move address of blank sprite into d0
  1004.     move.w d0,cyclesprite+6        put lo word of addr in copper
  1005.     swap d0                
  1006.     move.w d0,cyclesprite+2        put high word of addr in copper
  1007.  
  1008.     move.l #cyclescreen,d0        put addr of you ilbm graphic in d0
  1009.  
  1010.     move.w d0,cycleplanes+p0l    put lo word of first bp in to bppointer
  1011.     swap d0                in copper list
  1012.     move.w d0,cycleplanes+p0h    put hi word of first bp into bppointer
  1013.     swap d0
  1014.     
  1015.     add.l #40,d0
  1016.     move.w d0,cycleplanes+p1l
  1017.     swap d0
  1018.     move.w d0,cycleplanes+p1h        scn address in copperlist
  1019.     swap d0
  1020.     
  1021.     add.l #40,d0
  1022.     move.w d0,cycleplanes+p2l
  1023.     swap d0
  1024.     move.w d0,cycleplanes+p2h        scn address in copperlist
  1025.     swap d0
  1026.     
  1027.     add.l #40,d0
  1028.     move.w d0,cycleplanes+p3l
  1029.     swap d0
  1030.     move.w d0,cycleplanes+p3h        scn address in copperlist
  1031.  
  1032.     move.l gfxlib,a6        gfx lib address
  1033.     add.l #$32,a6            address of old copper
  1034.     move.w #$80,$dff096        dma ctrl (disable copper)
  1035.     move.l #cycle_copper,(a6)    replace old copper address with my 
  1036. ;                    copper list (lower down in my code)
  1037.  
  1038.     move.w #$8080,$dff096        dma ctrl (enable copper)
  1039.     move.w #$8010,$dff09a        copper interupt enabled
  1040.  
  1041.     rts
  1042. ;*-------------------------------------------------------------------------------*
  1043. cycle:
  1044.     cmp.b    #1,cycount
  1045.     beq    forwards
  1046.     cmp.b    #2,cycount
  1047.     beq    forandequ
  1048. forwards:
  1049.     moveq.l    #0,d2
  1050.     move.l     #15,d0
  1051.     move.l     #cyclelist+2,a0
  1052.     move.l     #cyclelist+6,a4
  1053. cpy_down:
  1054.     move.w    (a4),(a0)
  1055.     addq.l    #4,a0
  1056.     addq.l    #4,a4
  1057.     dbr    d0,cpy_down
  1058.  
  1059.     lea    collist,a1
  1060.     move.w    tabpos,d2
  1061.     addq.w    #2,d2
  1062.     cmp.w    #217,d2
  1063.     blt    no_pob
  1064.     move.w    #0,d2
  1065. no_pob:
  1066.     move.w    d2,tabpos
  1067.     move.w    (a1,d2.w),(a0)
  1068.     eor.w    #$FFFF,direction
  1069.     rts
  1070. forandequ:
  1071.     moveq.l    #0,d2
  1072.     move.l     #15,d0
  1073.     move.l     #cyclelist+2,a0
  1074.     move.l     #cyclelist+6,a4
  1075. cy_down:
  1076.     move.w    (a4),(a0)
  1077.     addq.l    #4,a0
  1078.     addq.l    #4,a4
  1079.     dbr    d0,cy_down
  1080.  
  1081.     move.w    equalizer1,d2
  1082.     add.w    equalizer2,d2
  1083.     tst.b    direction
  1084.     bne    noadd
  1085.     add.w    equalizer4,d2
  1086. noadd:
  1087.     move.w    d2,(a0)
  1088.     eor.w    #$FFFF,direction
  1089.     rts
  1090. ;*------------------------------------------------------------------------------
  1091. ;    GFX CHANGE routine 
  1092. ;*------------------------------------------------------------------------------
  1093. gfxchange:
  1094.     move.l    anim_ptr,a0        put ptr to anim sequ > a0
  1095.     move.l    A0,d0            clr d0
  1096.     cmp.l    #an_fin,d0
  1097.     blt     inrange1
  1098.     move.l    #anim_data,a0        move start of data in to the anim ptr
  1099.     move.l    #anim_data,anim_ptr    move start of data in to the anim ptr
  1100. inrange1:
  1101.     moveq.l    #0,d0            clr d0
  1102.     move.b    (a0)+,d0        put anim sequ into d0
  1103.     tst.b    d0            is it end of anim char?(0)
  1104.     bne.w    not_last_anim        no so skip next three insts
  1105.     move.l    #anim_data,a0        move start of data in to the anim ptr
  1106. goforit:
  1107.     move.b    (a0)+,d0        move fresh char to d0
  1108.     move.w    wait,gfxcmp        move 5 into frame counter for anims
  1109. not_last_anim:
  1110.     move.l    a0,anim_ptr        store new ptr addr
  1111.     move.l    #screen,d1        base addr of anims
  1112.     sub.b    #1,d0            remove extra from d0
  1113.     mulu    #5600,d0        multiply frame no. by frame size
  1114.     add.l    d1,d0            add base addr to frame offset
  1115. put_new_bm:
  1116.     move.w     d0,gfxplanes+p0l    put lo word of first bp in to bppointer
  1117.     swap     d0            in copper list
  1118.     move.w     d0,gfxplanes+p0h    put hi word of first bp into bppointer
  1119.     swap d0
  1120.     rts
  1121. ;*------------------------------------------------------------------------------
  1122. ;    TEXT routine 
  1123. ;*-------------------------------------------------------------------------------*
  1124. bigTEXT:
  1125.  
  1126.     moveq.l #0,d1            make sure d1 is clear
  1127.     moveq.l #0,d2            make sure d1 is clear
  1128.     move.l     textpos,a1        move start of scroll text a1
  1129.     move.l    #TEXT_screen,a3        base addr of screen
  1130.     
  1131.     move.b     (a1),d1            get char from scrolltext
  1132.     cmp #$0,d1            is it the last letter
  1133.     bne.w notend            if not skip to setting blitter up
  1134.  
  1135.     lea text,a1            get start addr of text
  1136.     move.l     a1,textpos        move to start of scroll text
  1137. notend:
  1138.  
  1139. nextltr:
  1140.     move.b     (a1)+,d1        get char from scrolltext
  1141.     add.w    #1,d2            add one line length counter
  1142.     cmp.b    #13,d1            are we at eol
  1143.     bne.w    nextltr            no read another ltr
  1144.  
  1145.     move.l    d2,d3            d3 is temp work reg    
  1146.     subq.l    #2,d2            remove cr from counter for disp loop
  1147.     subq.l    #1,d3            remove cr from counter for disp loop
  1148.     lsl.l    #1,d3            1/2 txt length in bytes 
  1149.     move.l  #20,d4            1/2 scrn size in bytes
  1150.     sub.l    d3,d4            1/2 txt len - 1/2 scrn width = offset
  1151.     add.l    d4,a3            add offset to the base addr of screen
  1152.     
  1153.     move.l     textpos,a2        move start of scroll text a2
  1154.     move.l     a1,textpos        and store for next time
  1155. readchar:
  1156.     moveq.l #0,d1            make sure d1 is clear
  1157.     move.b     (a2)+,d1        get char from scrolltext
  1158.         
  1159.     sub.b     #$20,d1            remove 32 from ascii val to get offset
  1160. ;                    in font eg spc=32 so spc first char
  1161.     tst.b    d1            if d1 = 0 then spc is at end of this 
  1162. ;                    char set
  1163.     bne.w     not_spc            it`s not space
  1164.     move.b    #92-33,d1        set to correct pos for space
  1165. not_spc:
  1166.     sub.b    #32,d1            a is char 0 in this fnt so remove crap
  1167.     lsl #$2,d1            multiply by 4 as font is 32 pixels 
  1168. ;                    wide
  1169.     lea font32,a1            base addr of font into a1
  1170.     add.l d1,a1            add char offset to a1
  1171.  
  1172.  
  1173.     btst.b #DMAB_BltDone-8,DMAConR+custom
  1174. BlitWait2:
  1175.     btst.b #DMAB_BltDone-8,DMAConR+Custom
  1176.     bne.w BlitWait2
  1177.  
  1178.     move.l     #$ffffffff,BLTAFWM+Custom
  1179.     move.w     #36,BLTDMOD+Custom
  1180.     move.w     #(27-1)*4,BLTAMOD+Custom
  1181.     move.l     a3,BLTDPT+Custom
  1182.     move.l     a1,BLTAPT+Custom
  1183.     move.w     #%0000100111110000,BLTCON0+Custom
  1184.     move.w     #0,BLTCON1+Custom
  1185.     move.w     #(40*64)+2,BLTSIZE+Custom    40lines by 2 word
  1186.  
  1187.     addq.l    #4,a3
  1188.     dbr    d2,readchar            have we done a full line
  1189.     rts    
  1190.  
  1191. ;*------------------------------------------------------------------------------
  1192. ;    strobe routine 1
  1193. ;*-------------------------------------------------------------------------------*
  1194.     
  1195. strobe1:
  1196.     sub.w    #1,count        add 1 to counter
  1197.     tst.w     count            are no. counts the same as amount in
  1198.     bne.w     noflash            count amount? 
  1199.  
  1200.     tst.w     upordown        change flash speed up or down
  1201.     beq.w    countdown        if 0 then count = down
  1202.  
  1203.     bsr.w     Text_flash            flash screen    
  1204.  
  1205.     add.w    #1,countamount        add 1 to amount of time to wait
  1206.     move.w  countamount,count    reset counter    
  1207.     cmp.w     #10,countamount        is delay at maximum
  1208.     
  1209.     bne.w     noflash         no don`t change direction
  1210.     eor.w     #$FFFF,upordown        yes change direction
  1211.     bra.w     noflash
  1212. countdown:
  1213.     bsr.w    Text_flash            flaash screen
  1214.  
  1215.     sub.w    #1,countamount        add 1 to amount of time to wait
  1216.     move.w  countamount,count    reset counter    
  1217.     tst.w     countamount        is delay at maximum
  1218.     
  1219.     bne.w     noflash         no don`t change direction
  1220.     move.w    #1,countamount
  1221.     move.w    #1,count
  1222.     eor.w     #$FFFF,upordown        yes change direction
  1223. noflash:
  1224.     RTS
  1225.  
  1226. Text_flash:
  1227.     tst.w     Text_cols+6
  1228.     bne.w     .setzero
  1229.     move.w     #$FFF,Text_cols+6
  1230.     move.w     #$FFF,lowcol+2
  1231.     bra.w    .skipzero
  1232. .setzero:
  1233.     move.w     #$0,Text_cols+6
  1234.     move.w     #$0,lowcol+2
  1235. .skipzero:
  1236.     rts
  1237.  
  1238. flash:
  1239.     tst.w     colourlist+2
  1240.     bne.w     setzero
  1241.     move.w     #$fff,Text_cols+2
  1242.     move.w     #$fff,colourlist+2
  1243.     bra.w    skipzero
  1244. setzero:
  1245.     move.w     #$0,Text_cols+2
  1246.     move.w     #$0,colourlist+2
  1247. skipzero:
  1248.     rts
  1249. dflash:
  1250.     tst.w     colourlist+2
  1251.     bne.w     .setzero
  1252.     move.w     #$fff,Text_cols+2
  1253.     move.w     #$fff,colourlist+2
  1254.     move.w     #$0,colourlist+6
  1255.     bra.w    .skipzero
  1256. .setzero:
  1257.     move.w     #$0,Text_cols+2
  1258.     move.w     #$0,colourlist+2
  1259.     move.w     #$fff,colourlist+6
  1260. .skipzero:
  1261.     rts
  1262. cflash:
  1263.     tst.w     colourlist+2
  1264.     bne.w     .sezero
  1265.     lea    strobelist,a0
  1266.     moveq.l    #0,d0
  1267.     move.b    strobecount,d0
  1268.     add.l    d0,d0
  1269.     add.l    d0,a0
  1270.     move.w     (a0),Text_cols+2
  1271.     move.w     (a0),colourlist+2
  1272.     bra.w    .sipzero
  1273. .sezero:
  1274.     move.w     #$0,Text_cols+2
  1275.     move.w     #$0,colourlist+2
  1276. .sipzero:
  1277.     rts
  1278. ;*-------------------------------------------------------------------------------*
  1279. ;    strobe routine 2        
  1280. ;*-------------------------------------------------------------------------------*
  1281. strobe2:
  1282.     move.w    equalizer2,colourlist+6
  1283.     rts
  1284. ;*-------------------------------------------------------------------------------*
  1285. ;    strobe routine 3        
  1286. ;*-------------------------------------------------------------------------------*
  1287. strobe3:
  1288.     sub.w #1,counts3
  1289.     tst.w     counts3            are no. counts the same as amount in
  1290.     bne.w     .noflas            count amount?
  1291.     bsr.w    flash            change scrn colour
  1292.     move.w    #3,counts3        reset counter
  1293. .noflas:
  1294.     rts
  1295. ;*-------------------------------------------------------------------------------*
  1296. ;    strobe routine 4        
  1297. ;*-------------------------------------------------------------------------------*
  1298. strobe4:
  1299.     sub.w #1,counts3
  1300.     tst.w     counts3            are no. counts the same as amount in
  1301.     bne.w     .noflash        count amount?
  1302.     bsr.w    flash            change scrn colour
  1303.     move.w    #2,counts3        reset counter
  1304. .noflash:
  1305.     rts
  1306. ;*-------------------------------------------------------------------------------*
  1307. ;    strobe routine 5        
  1308. ;*-------------------------------------------------------------------------------*
  1309. strobe5:
  1310.     sub.w #1,counts3
  1311.     tst.w     counts3            are no. counts the same as amount in
  1312.     bne.w     .nflash        count amount?
  1313.     bsr.w    flash            change scrn colour
  1314.     move.w    #1,counts3        reset counter
  1315. .nflash:
  1316.     rts
  1317. ;*-------------------------------------------------------------------------------*
  1318. ;    strobe routine 6        
  1319. ;*-------------------------------------------------------------------------------*
  1320. strobe6:
  1321.     sub.w #1,counts3
  1322.     tst.w     counts3            are no. counts the same as amount in
  1323.     bne.w     .oflash        count amount?
  1324.     bsr.w    dflash            change scrn colour
  1325.     move.w    #3,counts3        reset counter
  1326. .oflash:
  1327.     rts
  1328. ;*-------------------------------------------------------------------------------*
  1329. ;    strobe routine 7        
  1330. ;*-------------------------------------------------------------------------------*
  1331. strobe7:
  1332.     move.w     equalizer3,Text_cols+2
  1333.     move.w    equalizer3,colourlist+2
  1334.     move.w    equalizer1,colourlist+6
  1335.     rts
  1336. ;*-------------------------------------------------------------------------------*
  1337. ;    strobe routine 8        
  1338. ;*-------------------------------------------------------------------------------*
  1339. strobe8:
  1340.     sub.w     #1,counts3
  1341.     tst.w     counts3            are no. counts the same as amount in
  1342.     bne.w     n            count amount?
  1343.     sub.b    #1,strobecount
  1344.     tst.b    strobecount
  1345.     bne.w    notstrobing
  1346.     move.b     #7,strobecount
  1347. notstrobing:
  1348.     bsr.w    cflash            change scrn colour
  1349.     move.w    #6,counts3        reset counter
  1350. n:
  1351.     rts
  1352. ;*-------------------------------------------------------------------------------*
  1353. ;    strobe routine 9        
  1354. ;*-------------------------------------------------------------------------------*
  1355. strobe9:
  1356.     move.w    equalizer3,colourlist+6
  1357.     move.w     equalizer2,Text_cols+2
  1358.     move.w    equalizer2,colourlist+2
  1359.     rts
  1360. ;*-------------------------------------------------------------------------------*
  1361. ;    strobe routine border        
  1362. ;*-------------------------------------------------------------------------------*
  1363. bdrstrobe:
  1364.     move.w    equalizer4,bdr1+2
  1365.     move.w    equalizer4,bdr2+2
  1366.     rts
  1367. ;*-------------------------------------------------------------------------------*
  1368. ;    strobe routine back pic        
  1369. ;*-------------------------------------------------------------------------------*
  1370. back_strobe:
  1371.     move.w    equalizer4,bdr1+6
  1372.     rts
  1373. ;*-------------------------------------------------------------------------------*
  1374. ;    xbounce routine         
  1375. ;*-------------------------------------------------------------------------------*
  1376. xbounce:
  1377.     move.l    x_ptr,d0
  1378.     move.l    #bar_top+6,a0
  1379.     move.l    #13,d1
  1380. next_bar:
  1381.     move.w    8(a0),(a0)+
  1382.     addq.l    #6,a0
  1383.     dbr    d1,next_bar    
  1384.     addq.l    #2,d0
  1385.     cmp.l    #coll_finish,d0
  1386.     blt.w    not_fin_list
  1387.     move.l    #collist,d0
  1388. not_fin_list:
  1389.     move.l    d0,x_ptr
  1390.     move.l    d0,a1
  1391.     move.w    (a1),(a0)
  1392.  
  1393.     move.l    #5,d1
  1394.     move.l    #bar_bottom-2,a0
  1395. wtrye:
  1396.     move.w    (a0),8(a0)
  1397.     subq.l    #8,a0
  1398.     dbr    d1,wtrye
  1399.     move.w    bar_mid1-2,bar_mid2+6    
  1400.  
  1401.     move.l    #7,d1
  1402.     move.l    #bar_mid1-2,a0
  1403. trye:
  1404.     move.w    (a0),8(a0)
  1405.     subq.l    #8,a0
  1406.     dbr    d1,trye
  1407.     move.w    (a1),bar_bot+6
  1408.  
  1409.  
  1410.     moveq.l #0,d0
  1411.     move.w    equalizer3,d0
  1412.     and.l    #$f,d0
  1413.     cmp.w    #$c,d0
  1414.     bgt    x1
  1415.     cmp.w    #$7,d0
  1416.     bgt    x2
  1417.     cmp.w    #$3,d0
  1418.     bgt    x3
  1419.     move.l #xxx1,d0            put addr of you ilbm graphic in d0
  1420.     move.w d0,mirror_plane+p0l
  1421.     swap d0
  1422.     move.w d0,mirror_plane+p0h        scn address in copperlist
  1423.     rts
  1424. x1:
  1425.     move.l #xxxx,d0            put addr of you ilbm graphic in d0
  1426.     move.w d0,mirror_plane+p0l
  1427.     swap d0
  1428.     move.w d0,mirror_plane+p0h        scn address in copperlist
  1429.     rts
  1430. x2:
  1431.     move.l #xxx3,d0            put addr of you ilbm graphic in d0
  1432.     move.w d0,mirror_plane+p0l
  1433.     swap d0
  1434.     move.w d0,mirror_plane+p0h        scn address in copperlist
  1435.     rts
  1436. x3:
  1437.     move.l #xxx2,d0            put addr of you ilbm graphic in d0
  1438.     move.w d0,mirror_plane+p0l
  1439.     swap d0
  1440.     move.w d0,mirror_plane+p0h        scn address in copperlist
  1441.     rts
  1442. ;*-------------------------------------------------------------------------------*
  1443. ;this is a copper list consult hw ref manual for explanation of copper cmds
  1444. ;*-------------------------------------------------------------------------------*
  1445.     section copperlist,data_c    
  1446.  
  1447. my_copper
  1448.     dc.w     BPLCON0,$0200        0 bp - lores bitplane control reg 0
  1449.     dc.w     BPLCON2,%00100100    bp ctrl reg
  1450.     dc.w     BPL1MOD,0        bp modulo odd
  1451.     dc.w     BPL2MOD,0        bp modulo even
  1452. bdr1:    dc.w     COLOR,$428        colour reg 0 (background) 
  1453.     dc.w     COLOR+18,0        colour reg 0 (background) 
  1454.  
  1455. scroll:
  1456.     dc.w     BPLCON1,$0        this is the bitplane contol register 1
  1457. ;                    see hardware ref for details.
  1458.  
  1459. sprite:    
  1460.     dc.w     SPRPT,0            this tells sprite 0 where to look
  1461.     dc.w     SPRPT+2,0        for it's graphic and pos data set by
  1462.  
  1463. d_sprite1:    
  1464.     dc.w     SPRPT+8,0            this tells sprite 0 where to look
  1465.     dc.w     SPRPT+10,0        for it's graphic and pos data set by
  1466. d_sprite2:    
  1467.     dc.w     SPRPT+12,0            this tells sprite 0 where to look
  1468.     dc.w     SPRPT+14,0        for it's graphic and pos data set by
  1469. d_sprite3:    
  1470.     dc.w     SPRPT+16,0            this tells sprite 0 where to look
  1471.     dc.w     SPRPT+18,0        for it's graphic and pos data set by
  1472. d_sprite4:    
  1473.     dc.w     SPRPT+20,0            this tells sprite 0 where to look
  1474.     dc.w     SPRPT+22,0        for it's graphic and pos data set by
  1475.     
  1476.     dc.w     DDFSTRT,$38        start of display horiz
  1477.     dc.w     DDFSTOP,$d0        stop of display horiz
  1478.     dc.w     DIWSTRT,$2c81        visible window top left
  1479.     dc.w     DIWSTOP,$2cc1        visible window bottom right
  1480.  
  1481. ; this loads the pointers that tell custom chips where in mem you bps are
  1482. ; the section near start of code fill in the addresses after
  1483. bitplanes
  1484.     dc.w     BPLPT,0
  1485.     dc.w     BPLPT+2,0
  1486.     dc.w     BPLPT+4,0
  1487.     dc.w     BPLPT+6,0
  1488. p0h    equ 2
  1489. p0l    equ 6
  1490. p1h    equ 10
  1491. p1l    equ 14
  1492. p2h    equ 18
  1493. p2l    equ 22
  1494. p3h    equ 26
  1495. p3l    equ 30
  1496. p4h    equ 34
  1497. p4l    equ 38
  1498.  
  1499.         
  1500.     dc.w     $2b01,$ff00
  1501. spritepall:
  1502.     dc.w     color+40,0
  1503.     dc.w    color+42,$ff0
  1504.     dc.w    color+44,$880
  1505.     dc.w    color+46,$440
  1506.     dc.w    color+48,0
  1507.     dc.w    color+50,$FF0
  1508.     dc.w    color+52,$880
  1509.     dc.w    color+54,$440
  1510.  
  1511.     
  1512.     dc.w     $2c01,$ff00        start gfx (text1)
  1513.     dc.w     BPLCON0,$2600
  1514. text_cols:
  1515.     dc.w    color,$0
  1516.     dc.w    color+2,$FFF
  1517.     dc.w     $5401,$ff00        end gfx
  1518. blank1:
  1519.     dc.w     BPLPT,0
  1520.     dc.w     BPLPT+2,0
  1521.  
  1522.     dc.w     $6601,$ff00        start gfx (anims)
  1523. gfxplanes
  1524.     dc.w     BPLPT,0
  1525.     dc.w     BPLPT+2,0
  1526.  
  1527. ColourList:
  1528.     dc.w    color,$0
  1529.     dc.w    color+2,$0
  1530.  
  1531.     dc.w     $f201,$ff00        end gfx
  1532. blank2:
  1533.     dc.w     BPLPT,0
  1534.     dc.w     BPLPT+2,0
  1535.  
  1536.     dc.w     $ffe1,$fffe        end ntsc
  1537.  
  1538.     dc.w    $0401,$ff00        start gfx (text2)
  1539. replanes
  1540.     dc.w     BPLPT,0
  1541.     dc.w     BPLPT+2,0
  1542. lowcol:
  1543.     dc.w    color+2,$000
  1544.     dc.w     $2c01,$ff00        end gfx
  1545.     dc.w     BPLCON0,$0200
  1546. bdr2:    dc.w     COLOR,$428            colour reg 0 (background) 
  1547.  
  1548.     dc.w     $2d01,$ff00        end pal
  1549.     dc.w     INTREQ,$8010            strobe for interupt
  1550.     dc.w     $ffff,$fffe        end copper
  1551. ;*-------------------------------------------------------------------------------*
  1552. ;copper list 2  consult hw ref manual for explanation of copper cmds
  1553. ;*-------------------------------------------------------------------------------*
  1554.  
  1555. mirror_cop:
  1556.     dc.w     BPLCON0,$0200        0 bp - lores bitplane control reg 0
  1557.     dc.w     BPLCON2,$a        bp ctrl reg
  1558.     dc.w     BPL1MOD,0        bp modulo odd
  1559.     dc.w     BPL2MOD,0        bp modulo even
  1560.     dc.w     COLOR,$428        colour reg 0 (background) 
  1561.  
  1562.     dc.w     BPLCON1,$0        this is the bitplane contol register 1
  1563. ;                    see hardware ref for details.
  1564.  
  1565. mirsprite:    
  1566.     dc.w     SPRPT,0            this tells sprite 0 where to look
  1567.     dc.w     SPRPT+2,0        for it's graphic and pos data set by
  1568. ;                    the code higher up
  1569.     
  1570.     dc.w     DDFSTRT,$38        start of display horiz
  1571.     dc.w     DDFSTOP,$d0        stop of display horiz
  1572.     dc.w     DIWSTRT,$2c81        visible window top left
  1573.     dc.w     DIWSTOP,$2cc1        visible window bottom right
  1574.  
  1575. ; this loads the pointers that tell custom chips where in mem you bps are
  1576. ; the section near start of code fill in the addresses after
  1577. mirror_plane:
  1578.     dc.w     BPLPT,0
  1579.     dc.w     BPLPT+2,0
  1580.     dc.w     $2b01,$ff00
  1581.  
  1582.     
  1583.     dc.w     $2c01,$ff00        start gfx 
  1584.     dc.w     BPLCON0,$1200
  1585.     dc.w    color+2,$a70
  1586. bar_top:
  1587. f:    set    $2d
  1588. c:    set    $FFF
  1589.     rept    15
  1590.     dc.b    f,01,$ff,00
  1591.     dc.w    color,c
  1592. f:    set    f+6
  1593. c:    set    c-$111
  1594.     endr
  1595.     
  1596.     dc.w     $ab01,$ff00        mirror gfx
  1597.     dc.w     BPL1MOD,-80        bp modulo odd
  1598.     dc.w     BPL2MOD,-80        bp modulo even
  1599. bar_bot:
  1600.     dc.w    $d001,$ff00
  1601.     dc.w    color,$FFF
  1602.     dc.w    $d601,$ff00
  1603.     dc.w    color,$EEE
  1604.     dc.w    $dc01,$ff00
  1605.     dc.w    color,$ddd
  1606.     dc.w    $e201,$ff00
  1607.     dc.w    color,$ccc
  1608.     dc.w    $e801,$ff00
  1609.     dc.w    color,$bbb
  1610.     dc.w    $ee01,$ff00
  1611.     dc.w    color,$aaa
  1612.     dc.w    $f401,$ff00
  1613.     dc.w    color,$999
  1614.     dc.w    $fa01,$ff00
  1615.     dc.w    color,$888
  1616. bar_mid1:
  1617.     dc.w     $ffe1,$fffe        end ntsc
  1618. bar_mid2:
  1619.     dc.w    $0101,$ff00
  1620.     dc.w    color,$777
  1621.     dc.w    $0701,$ff00
  1622.     dc.w    color,$666
  1623.     dc.w    $0d01,$ff00
  1624.     dc.w    color,$555
  1625.     dc.w    $1301,$ff00
  1626.     dc.w    color,$444
  1627.     dc.w    $1901,$ff00
  1628.     dc.w    color,$333
  1629.     dc.w    $1f01,$ff00
  1630.     dc.w    color,$222
  1631. bar_bottom:
  1632.     dc.w    $2501,$ff00        
  1633.     dc.w    color,$111
  1634.  
  1635.     dc.w    $2b01,$ff00
  1636.     dc.w    color,0
  1637.     dc.w     $2c01,$ff00        end gfx 
  1638.     dc.w     BPLCON0,$0200
  1639.     dc.w     COLOR,$428        colour reg 0 (background) 
  1640.     dc.w     $2d01,$ff00        end pal
  1641.     dc.w     INTREQ,$8010        strobe for interupt
  1642.     dc.w     $ffff,$fffe        end copper
  1643. ;*-------------------------------------------------------------------------------*
  1644. ;this is  copper list 3 consult hw ref manual for explanation of copper cmds
  1645. ;*-------------------------------------------------------------------------------*
  1646. cycle_copper
  1647.     dc.w BPLCON0,$0200        0 bp - lores bitplane control reg 0
  1648.     dc.w BPLCON2,$a            bp ctrl reg
  1649.     dc.w BPL1MOD,120        bp modulo odd
  1650.     dc.w BPL2MOD,120        bp modulo even
  1651.     dc.w COLOR,0            colour reg 0 (background) 
  1652.  
  1653.     dc.w BPLCON1,$0            this is the bitplane contol register 1
  1654. ;                    see hardware ref for details.
  1655.  
  1656. cyclesprite:    
  1657.     dc.w SPRPT,0            this tells sprite 0 where to look
  1658.     dc.w SPRPT+2,0            for it's graphic and pos data set by
  1659. ;                    the code higher up
  1660.     
  1661.     dc.w DDFSTRT,$38        start of display horiz
  1662.     dc.w DDFSTOP,$d0        stop of display horiz
  1663.     dc.w DIWSTRT,$2c81        visible window top left
  1664.     dc.w DIWSTOP,$2cc1        visible window bottom right
  1665.  
  1666. ; this loads the pointers that tell custom chips where in mem you bps are
  1667. ; the section near start of code fill in the addresses after
  1668. cycleplanes
  1669.     dc.w BPLPT,0
  1670.     dc.w BPLPT+2,0
  1671.     dc.w BPLPT+4,0
  1672.     dc.w BPLPT+6,0
  1673.     dc.w BPLPT+8,0
  1674.     dc.w BPLPT+10,0
  1675.     dc.w BPLPT+12,0
  1676.     dc.w BPLPT+14,0
  1677.     dc.w BPLPT+16,0
  1678.     dc.w BPLPT+18,0
  1679.         
  1680.     dc.w $2b01,$ff00
  1681. cycleList:
  1682. c:    set COLOR
  1683.     rept 32
  1684.     dc.w c,0
  1685. c:    set c+2
  1686.     endr
  1687. listend:
  1688.     
  1689.     dc.w $2c01,$ff00        start gfx
  1690.  
  1691.     dc.w BPLCON0,$4200
  1692.     
  1693.     dc.w $ac01,$ff00
  1694.     dc.w BPL1MOD,-200        bp modulo odd
  1695.     dc.w BPL2MOD,-200        bp modulo even
  1696.  
  1697.     dc.w $ffe1,$fffe        end ntsc
  1698.  
  1699.     dc.w $2c01,$ff00        end gfx
  1700.     dc.w BPLCON0,$0200
  1701.  
  1702.     dc.w $2d01,$ff00        end pal
  1703.     dc.w INTREQ,$8010            strobe for interupt
  1704.     
  1705.     dc.w $ffff,$fffe        end copper
  1706.  
  1707. ;*-------------------------------------------------------------------------------*
  1708. ;intro copper list consult hw ref manual for explanation of copper cmds
  1709. ;*-------------------------------------------------------------------------------*
  1710. intro_copper
  1711.     dc.w BPLCON0,$0200        0 bp - lores bitplane control reg 0
  1712.     dc.w BPLCON2,$4a            bp ctrl reg
  1713. moddulo:
  1714.     dc.w BPL1MOD,160        bp modulo odd
  1715.     dc.w BPL2MOD,160        bp modulo even
  1716.     dc.w COLOR,0            colour reg 0 (background) 
  1717.  
  1718.     dc.w BPLCON1,$0            this is the bitplane contol register 1
  1719. ;                    see hardware ref for details.
  1720.  
  1721. intro_sprite:    
  1722.     dc.w SPRPT,0            this tells sprite 0 where to look
  1723.     dc.w SPRPT+2,0            for it's graphic and pos data set by
  1724. ;                    the code higher up
  1725.     
  1726.     dc.w DDFSTRT,$38        start of display horiz
  1727.     dc.w DDFSTOP,$d0        stop of display horiz
  1728.     dc.w DIWSTRT,$2c81        visible window top left
  1729.     dc.w DIWSTOP,$2cc1        visible window bottom right
  1730.  
  1731. ; this loads the pointers that tell custom chips where in mem you bps are
  1732. ; the section near start of code fill in the addresses after
  1733. intro_planes
  1734.     dc.w BPLPT,0
  1735.     dc.w BPLPT+2,0
  1736.     dc.w BPLPT+4,0
  1737.     dc.w BPLPT+6,0
  1738.     dc.w BPLPT+8,0
  1739.     dc.w BPLPT+10,0
  1740.     dc.w BPLPT+12,0
  1741.     dc.w BPLPT+14,0
  1742.     dc.w BPLPT+16,0
  1743.     dc.w BPLPT+18,0
  1744.         
  1745.     dc.w $2b01,$ff00
  1746.  
  1747. intro_List:
  1748. c:    set COLOR
  1749.     rept 32
  1750.     dc.w c,0
  1751. c:    set c+2
  1752.     endr
  1753.  
  1754.     
  1755.     dc.w $2c01,$ff00        start gfx
  1756. plane_start:
  1757.     dc.w BPLCON0,$5200
  1758.     dc.w $f401,$ff00
  1759.     dc.w BPLCON0,$0200
  1760.  
  1761.     dc.w $ffe1,$fffe        end ntsc
  1762.  
  1763.     dc.w $2c01,$ff00        end gfx
  1764.  
  1765.     dc.w INTREQ,$8010        strobe for interupt
  1766.     
  1767.     dc.w $ffff,$fffe        end copper
  1768. ;*-------------------------------------------------------------------------------*
  1769. ;                                DATA SECTION
  1770. ;*-------------------------------------------------------------------------------*
  1771.     section spritedata,data_c
  1772.  
  1773. dummysprite:
  1774.     dc.w 0,0,0,0
  1775.  
  1776. ltbk_sprite1:
  1777.     dc.b    83,128,8,2
  1778.  
  1779.     dc.w $0000,$0000
  1780.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$001e,$0000
  1781.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1782.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1783.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1784.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1785.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1786.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1787.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1788.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1789.     dc.w $001e,$0000,$001f,$0000,$001f,$0000,$001f,$0000
  1790.     dc.w $001f,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1791.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1792.     dc.w $0000,$0000,$00ff,$0000,$00ff,$0000,$00ff,$0000
  1793.     dc.w $00ff,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1794.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1795.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1796.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1797.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1798.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1799.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1800.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0007,$0000
  1801.     dc.w $0007,$0000,$0007,$0000,$0007,$0000,$0000,$0000
  1802.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1803.     dc.w $0000,$0000,$0000,$0000,$07f0,$080c,$0ffe,$0002
  1804.     dc.w $0ffe,$0001,$0ffe,$0001,$0f2f,$00b0,$0f17,$0018
  1805.     dc.w $0f0f,$0008,$0f07,$0000,$0f07,$0000,$0f07,$0000
  1806.     dc.w $0f07,$0000,$0f07,$0000,$0f07,$0000,$0f0f,$0008
  1807.     dc.w $0f07,$0008,$0f1e,$0091,$0fff,$0001,$0fff,$0001
  1808.     dc.w $0ffe,$0001,$0fff,$0000,$0f17,$0098,$0f03,$0004
  1809.     dc.w $0f03,$0000,$0f03,$0000,$0f03,$0000,$0f03,$0000
  1810.     dc.w $0f03,$0000,$0f03,$0000,$0f03,$0000,$0f03,$0000
  1811.     dc.w $0f07,$0004,$0f03,$0004,$0f0f,$0008,$0f0f,$0090
  1812.     dc.w $0fff,$0000,$0ffe,$0001,$0ffe,$0002,$07f8,$0804
  1813.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1814.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1815.     dc.w $0181,$0242,$03c3,$0004,$03c7,$0000,$03c7,$0008
  1816.     dc.w $03cf,$0000,$03cf,$0010,$03df,$0000,$03df,$0020
  1817.     dc.w $03fe,$0001,$03fe,$0000,$03fc,$0002,$03fc,$0000
  1818.     dc.w $03f8,$0004,$03f8,$0000,$03f0,$0008,$03f0,$0000
  1819.     dc.w $03e0,$0010,$03e0,$0010,$03f0,$0000,$03f0,$0008
  1820.     dc.w $03f8,$0000,$03f8,$0004,$03fc,$0000,$03fc,$0002
  1821.     dc.w $03fe,$0000,$03fe,$0001,$03df,$0020,$03df,$0000
  1822.     dc.w $03cf,$0010,$03cf,$0000,$03c7,$0008,$03c7,$0000
  1823.     dc.w $03c3,$0004,$03c3,$0000,$03c1,$0002,$03c1,$0000
  1824.     dc.w $03c0,$0001,$0180,$0240,$0000,$0000,$0000,$0000
  1825.     dc.w $0000,$0000
  1826.     dc.w 0,0
  1827.  
  1828. ltbk_sprite2:
  1829.  
  1830.     dc.b    83,136,8,2
  1831.     dc.w $0000,$0000
  1832.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$00ff,$0000
  1833.     dc.w $00ff,$0000,$00ff,$0000,$00ff,$0000,$00f0,$0000
  1834.     dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
  1835.     dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
  1836.     dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00ff,$0000
  1837.     dc.w $00ff,$0000,$00ff,$0000,$00ff,$0000,$00f0,$0000
  1838.     dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
  1839.     dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
  1840.     dc.w $00f0,$0000,$00f0,$0000,$00f0,$0000,$00f0,$0000
  1841.     dc.w $00f0,$0000,$fcff,$0000,$fcff,$0000,$fcff,$0000
  1842.     dc.w $fcff,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1843.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1844.     dc.w $0000,$0000,$ffc0,$0000,$ffc0,$0000,$ffc0,$0000
  1845.     dc.w $ffc0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
  1846.     dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
  1847.     dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
  1848.     dc.w $83c0,$0000,$83ff,$0000,$83ff,$0000,$83ff,$0000
  1849.     dc.w $83ff,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
  1850.     dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
  1851.     dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
  1852.     dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$83c0,$0000
  1853.     dc.w $83c0,$0000,$83c0,$0000,$83c0,$0000,$0000,$0000
  1854.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1855.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1856.     dc.w $00f0,$0090,$00f0,$0000,$80f0,$8000,$81f8,$8108
  1857.     dc.w $00f0,$8108,$80f0,$0108,$83fc,$0204,$83fc,$0204
  1858.     dc.w $81f8,$0204,$81f8,$0204,$81f8,$0204,$07fe,$8402
  1859.     dc.w $87fe,$8402,$07fe,$0402,$039c,$0462,$039c,$0402
  1860.     dc.w $039c,$0402,$879e,$8000,$079e,$8000,$cf9f,$4861
  1861.     dc.w $8fff,$4801,$cfff,$0801,$c7fe,$0801,$c7fe,$0801
  1862.     dc.w $cf0f,$0090,$cf0f,$0000,$cf0f,$0000,$cf0f,$0000
  1863.     dc.w $cf0f,$0000,$8f0f,$4000,$cf0f,$4000,$0f0f,$8000
  1864.     dc.w $8f0f,$8000,$0f0f,$0000,$0f0f,$0000,$0f0f,$0909
  1865.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1866.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1867.     dc.w $c180,$2240,$e3c0,$0000,$c3c0,$2001,$c3c3,$0002
  1868.     dc.w $83c1,$4002,$83c3,$0000,$03c7,$8004,$03c7,$0004
  1869.     dc.w $03c3,$0004,$03c7,$0000,$03c7,$0000,$03c7,$0000
  1870.     dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$0000
  1871.     dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$0000
  1872.     dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$0000
  1873.     dc.w $03c7,$0000,$03c7,$0000,$03c7,$0000,$03c7,$8000
  1874.     dc.w $83c7,$0000,$83c3,$4004,$c3c7,$0004,$c3c7,$2004
  1875.     dc.w $e3c3,$0000,$e3c1,$1002,$f3c3,$0002,$f3c0,$0001
  1876.     dc.w $f3c0,$0000,$6180,$9240,$0000,$0000,$0000,$0000
  1877.     dc.w $0000,$0000
  1878.     dc.w 0,0
  1879.  
  1880. ltbk_sprite3:
  1881.     dc.b    83,144,8,2
  1882.     dc.w $0000,$0000
  1883.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$f3ff,$0000
  1884.     dc.w $f3ff,$0000,$f3ff,$0000,$f3ff,$0000,$001e,$0000
  1885.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1886.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1887.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$e01e,$0000
  1888.     dc.w $e01e,$0000,$e01e,$0000,$e01e,$0000,$001e,$0000
  1889.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1890.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1891.     dc.w $001e,$0000,$001e,$0000,$001e,$0000,$001e,$0000
  1892.     dc.w $001e,$0000,$f01e,$0000,$f01e,$0000,$f01e,$0000
  1893.     dc.w $f01e,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1894.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1895.     dc.w $0000,$0000,$f1ff,$0000,$f1ff,$0000,$f1ff,$0000
  1896.     dc.w $f1ff,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
  1897.     dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
  1898.     dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
  1899.     dc.w $f1e0,$0000,$f1ff,$0000,$f1ff,$0000,$f1ff,$0000
  1900.     dc.w $f1ff,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
  1901.     dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
  1902.     dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1e0,$0000
  1903.     dc.w $f1e0,$0000,$f1e0,$0000,$f1e0,$0000,$f1ff,$0000
  1904.     dc.w $f1ff,$0000,$f1ff,$0000,$f1ff,$0000,$0000,$0000
  1905.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1906.     dc.w $0000,$0000,$0000,$0000,$01e0,$0210,$03f8,$0408
  1907.     dc.w $07f8,$0804,$0ffe,$0002,$1ffe,$00c0,$1e1e,$2120
  1908.     dc.w $3f3e,$0120,$3c1e,$0200,$3e1e,$0200,$3c1e,$0012
  1909.     dc.w $3c00,$0000,$3e00,$0200,$3c00,$0200,$3e00,$0100
  1910.     dc.w $3fc0,$2040,$0fe0,$1020,$0fe0,$0810,$03f8,$0408
  1911.     dc.w $02f8,$0304,$01fc,$0100,$00fe,$0080,$003f,$0041
  1912.     dc.w $003e,$0021,$001f,$0000,$000f,$0010,$001f,$0010
  1913.     dc.w $000f,$0000,$000f,$0000,$3c1f,$2410,$3c0f,$0010
  1914.     dc.w $3c1f,$0000,$3e3e,$0221,$1e3f,$2101,$3ffe,$20c0
  1915.     dc.w $1ffe,$0002,$0ff8,$1004,$0ff8,$0808,$03e0,$0410
  1916.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1917.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1918.     dc.w $3c03,$4204,$ff07,$8100,$ff07,$0080,$ffc7,$0040
  1919.     dc.w $ff87,$1840,$c3e7,$2420,$e7c7,$2420,$81e7,$4200
  1920.     dc.w $c3e7,$4200,$c1e7,$4000,$c1e7,$4000,$80c7,$0120
  1921.     dc.w $8007,$0000,$8007,$0000,$8007,$0000,$8007,$0000
  1922.     dc.w $8007,$0000,$8007,$0000,$8007,$0000,$8007,$0000
  1923.     dc.w $8007,$0000,$8007,$0000,$8007,$0000,$8007,$0000
  1924.     dc.w $8007,$0000,$8007,$0000,$80c7,$0120,$c1e7,$4000
  1925.     dc.w $c1e7,$4000,$c3e7,$4200,$81e7,$4200,$e7c7,$2420
  1926.     dc.w $c3e7,$2420,$ff87,$1840,$ffc7,$0040,$ff07,$0080
  1927.     dc.w $ff07,$8100,$3c03,$4204,$0000,$0000,$0000,$0000
  1928.     dc.w $0000,$0000
  1929.     dc.w 0,0
  1930.  
  1931. ltbk_sprite4:
  1932.     dc.b    83,152,8,2
  1933.     dc.w $0000,$0000
  1934.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$f000,$0000
  1935.     dc.w $f000,$0000,$f000,$0000,$f000,$0000,$0000,$0000
  1936.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1937.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1938.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1939.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1940.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1941.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1942.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1943.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1944.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1945.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1946.     dc.w $0000,$0000,$e000,$0000,$e000,$0000,$e000,$0000
  1947.     dc.w $e000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1948.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1949.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1950.     dc.w $0000,$0000,$c000,$0000,$c000,$0000,$c000,$0000
  1951.     dc.w $c000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1952.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1953.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1954.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$e000,$0000
  1955.     dc.w $e000,$0000,$e000,$0000,$e000,$0000,$0000,$0000
  1956.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1957.     dc.w $0000,$0000,$0000,$0000,$03c0,$0420,$07f0,$0810
  1958.     dc.w $0ff0,$1008,$1ffc,$0004,$3ffc,$0180,$3c3c,$4240
  1959.     dc.w $7e7c,$0240,$783c,$0400,$7c3c,$0400,$783c,$0024
  1960.     dc.w $7800,$0000,$7c00,$0400,$7800,$0400,$7c00,$0200
  1961.     dc.w $7f80,$4080,$1fc0,$2040,$1fc0,$1020,$07f0,$0810
  1962.     dc.w $05f0,$0608,$03f8,$0200,$01fc,$0100,$007e,$0082
  1963.     dc.w $007c,$0042,$003e,$0000,$001e,$0020,$003e,$0020
  1964.     dc.w $001e,$0000,$001e,$0000,$783e,$4820,$781e,$0020
  1965.     dc.w $783e,$0000,$7c7c,$0442,$3c7e,$4202,$7ffc,$4180
  1966.     dc.w $3ffc,$0004,$1ff0,$2008,$1ff0,$1010,$07c0,$0820
  1967.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1968.     dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  1969.     dc.w $0380,$8440,$87c0,$0800,$8f80,$0040,$8f80,$1000
  1970.     dc.w $9f00,$0080,$9f00,$2000,$be00,$0100,$be00,$4000
  1971.     dc.w $fc00,$0200,$fc00,$0000,$f800,$0400,$f800,$0000
  1972.     dc.w $f000,$0800,$f000,$0000,$e000,$1000,$e000,$0000
  1973.     dc.w $c000,$2000,$c000,$2000,$e000,$0000,$e000,$1000
  1974.     dc.w $f000,$0000,$f000,$0800,$f800,$0000,$f800,$0400
  1975.     dc.w $fc00,$0000,$fc00,$0200,$be00,$4000,$be00,$0100
  1976.     dc.w $9f00,$2000,$9f00,$0080,$8f80,$1000,$8f80,$0040
  1977.     dc.w $87c0,$0800,$87c0,$0020,$83e0,$0400,$83e0,$0000
  1978.     dc.w $81e0,$0200,$00c0,$8120,$0000,$0000,$0000,$0000
  1979.     dc.w $0000,$0000
  1980.     dc.w 0,0
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986. ;*-------------------------------------------------------------------------------*
  1987.     section musicdata,data_c
  1988.     incdir coding:projects/source/retinademo/
  1989. mt_data:    
  1990.     incbin mod.rave3
  1991.     even    
  1992. MT_DATA2:
  1993.     incbin mod.menu
  1994. ;*-------------------------------------------------------------------------------*
  1995.     section variables,data
  1996.     
  1997. glib            dc.b "graphics.library",0
  1998. dlib            dc.b "dos.library",0
  1999.     even
  2000. greet_ptr    dc.l 0
  2001. screenpos    dc.l 0
  2002. textpos        dc.l 0
  2003. x_ptr        dc.l 0
  2004. gfxlib            dc.l 0
  2005. cgfxlib            dc.l 0
  2006. doslib            dc.l 0
  2007. oldcopper    dc.l 0
  2008. anim_ptr    dc.l 0
  2009. spin_ptr    dc.l 0
  2010. back_ptr    dc.l 0
  2011. ack_ptr        dc.l 0
  2012. scroll_wait    dc.w 1
  2013. bass_wait    dc.w 1
  2014. textcount    dc.w 10
  2015. gfxcount    dc.w 5
  2016. gfxcmp        dc.w 5
  2017. count        dc.w 10
  2018. counts3        dc.w 10
  2019. alternator    dc.w 100
  2020. countamount    dc.w 6
  2021. BEATcount    dc.w 4
  2022. acounter    dc.w 4
  2023. upordown    dc.w 0
  2024. direction    dc.w 0
  2025. stselect    dc.w 0
  2026. delay        dc.w 1
  2027. cytog        dc.w 0    
  2028. toggle        dc.w $ffff
  2029. scrollcount    dc.w 32
  2030. vbl        dc.w 0
  2031. spindone        dc.w 0
  2032. bored        dc.w 100
  2033. intro_counter    dc.w $200
  2034. wait        dc.w 5
  2035. strobelist    dc.w     $FFF
  2036.         dc.w    $f00
  2037.         dc.w    $ff0
  2038.         dc.w    $0f0
  2039.         dc.w    $0ff
  2040.         dc.w    $00f
  2041.         dc.w    $f0f
  2042.  
  2043. plane_store:
  2044.     dc.w BPLCON0,$2600
  2045.     dc.w $ffe1,$fffe        end ntsc
  2046.     dc.w $2c01,$ff00        end gfx
  2047.     dc.w BPLCON0,$0200
  2048.     dc.w $2d01,$ff00        end copper
  2049.  
  2050. strobecount    dc.b     6
  2051. linecount    dc.b    9        
  2052. cycount        dc.b    2
  2053. greets:
  2054. ;         12345678901234567890
  2055.     dc.b    " ",10
  2056.     dc.b    " ",10
  2057.     dc.b    " ",10
  2058.     dc.b    " ",10
  2059.     dc.b    "THANK YOU FOR",10
  2060.     dc.b    "WATCHING OUR LITTLE",10
  2061.     dc.b    "RAVE DEMO",10
  2062.     dc.b    " ",10
  2063.     dc.b    " ",10
  2064.     dc.b    " ",10
  2065.     dc.b    "@ ",10
  2066.  
  2067.     dc.b    "This demo is",10
  2068.     dc.b    "dedicated to a",10
  2069.     dc.b    "scene member who",10
  2070.     dc.b    "died this week",10
  2071.     dc.b    " ",10
  2072.     dc.b    " ",10
  2073.     dc.b    "@ ",10
  2074.     dc.b    " ",10
  2075.     dc.b    " Master of the",10
  2076.     dc.b    " Puppets",10
  2077.     dc.b    " Rest in Peace",10
  2078.     dc.b    " ",10
  2079.     dc.b    " ",10
  2080.     dc.b    " ",10
  2081.     dc.b    "@ ",10
  2082.     dc.b    "CREDITS AND GREETS",10
  2083.     dc.b    " ",10
  2084.     dc.b    " ",10
  2085.     dc.b    "====================",10
  2086.     dc.b    "PROGRAMMING",10
  2087.     dc.b    "====================",10
  2088.     dc.b    10
  2089.     dc.b    "*CYLON (DMX)*",10
  2090.     dc.b    10,10,10,"@",10
  2091.     dc.b    "====================",10
  2092.     dc.b    "GRAPHICS",10
  2093.     dc.b    "====================",10
  2094.     dc.b    "GIG (DMX)",10
  2095.     dc.b    "Title picture",10
  2096.     dc.b    "Font1",10
  2097.     dc.b    "Small still GFX",10
  2098.     dc.b    " ",10
  2099.     dc.b    "@ ",10
  2100.     dc.b    "*CYLON (DMX)*",10
  2101.     dc.b    "Back drops",10
  2102.     dc.b    "This font lowercase",10
  2103.     dc.b    "Animated GFX",10
  2104.     dc.b    "Cycle GFX",10
  2105.     dc.b    "ZADD (DMX)",10
  2106.     dc.b    "This font uppercase",10
  2107.     dc.b    " ",10
  2108.     dc.b    "@====================",10
  2109.     dc.b    "MUSIC",10
  2110.     dc.b    "====================",10
  2111.     dc.b    10
  2112.     dc.b    "ZADD  (DMX) RAVE",10
  2113.     dc.b    "ACCEL (DMX) END.",10
  2114.     dc.b    10,10
  2115.     dc.b    "@====================",10
  2116.     dc.b    "UNUSED MUSIC",10
  2117.     dc.b    "====================",10
  2118.     dc.b    10,10
  2119.     dc.b    "THE ASSASSIN (DMX)",10
  2120.     dc.b    10,10
  2121.     dc.b    "@====================",10
  2122.     dc.b    "INSPIRATION AND",10
  2123.     dc.b    "MORAL SUPPORT",10
  2124.     dc.b    "====================",10
  2125.     dc.b    10
  2126.     dc.b    "Andy           Jim",10
  2127.     dc.b    "Stuart         Lee",10
  2128.     dc.b    10
  2129.     dc.b    "@====================",10
  2130.     dc.b    "THE SHORT GREETINGS",10
  2131.     dc.b    "====================",10
  2132.     dc.b    "DJ RAZ FUTURE SOUNDS",10
  2133.     dc.b    "DISCO KICKIN",10
  2134.     dc.b    "ANDY      MICHELLE",10
  2135.     dc.b    "JOFF         DARYL",10
  2136.     dc.b    "CLAIRE       CHRIS",10
  2137.     dc.b    "ROSY          PHIL",10
  2138.     dc.b    "LES           EMMA",10
  2139.     dc.b    "PAUL          ALAN",10
  2140.     dc.b    "LISA         KELLY",10
  2141.     dc.b    "SARAH       PHILIP",10
  2142.     dc.b    "VICKY         ALAN",10
  2143.     dc.b    "KEVIN       JOSHUA",10
  2144.     dc.b    " ",10
  2145.     incbin    greets.i
  2146.     dc.b    " ",10
  2147.     dc.b    "====================",10
  2148.     dc.b    "ADDRESSES FOLLOW",10
  2149.     dc.b    "====================",10
  2150.     dc.b    " ",10
  2151.     dc.b    " ",10
  2152.     dc.b    " ",10
  2153.     dc.b    " ",10
  2154.     dc.b    " ",10
  2155.     dc.b    " ",10
  2156.     dc.b    " ",10
  2157.     dc.b    "Cylon               ",10
  2158.     dc.b    "@46 Willingham Road ",10
  2159.     dc.b    "@Knaith Park        ",10
  2160.     dc.b    "@Lincs              ",10
  2161.     dc.b    "@DN21 5ES           ",10
  2162.     dc.b    "@ ",10
  2163.     dc.b    "Zadd                ",10
  2164.     dc.b    "(Deadlock Arts)     ",10
  2165.     dc.b    "@31 Coroners Lane   ",10
  2166.     dc.b    "@Farnsworth         ",10
  2167.     dc.b    "@Widnes             ",10
  2168.     dc.b    "@Cheshire           ",10
  2169.     dc.b    "@WA8 9JN            ",10
  2170.     dc.b    "@ ",10
  2171.     dc.b    "Mint sauce          ",10
  2172.     dc.b    "(Deadlock Arts)     ",10
  2173.     dc.b    "@46 Churncote       ",10
  2174.     dc.b    "@Stirchley          ",10
  2175.     dc.b    "@Telford            ",10
  2176.     dc.b    "@Shropshire         ",10
  2177.     dc.b    "@TF3 1YL            ",10
  2178.     dc.b    "@ ",10
  2179.     dc.b    "R9 Sorry I couldn't ",10
  2180.     dc.b    "find your addr.     ",10
  2181.     dc.b    " ",10
  2182.     dc.b    "====================",10
  2183.     dc.b    "THE BORING WAFFLE",10
  2184.     dc.b    " ",10
  2185.     dc.b    "Stu sorry no logo",10
  2186.     dc.b    "my brain stalled at",10
  2187.     dc.b    "the last minute",10
  2188.     dc.b    "@ ",10
  2189.     dc.b    "Minty it's all going",10
  2190.     dc.b    "in AR4 matey 50 quid",10
  2191.     dc.b    "and I'll take it out",10
  2192.     dc.b    "100 quid and I'll",10
  2193.     dc.b    "give you the",10
  2194.     dc.b    "negatives and the",10
  2195.     dc.b    "sheeps statement.",10
  2196.     dc.b    "@ ",10
  2197.     dc.b    "Tango OH NO!!!",10
  2198.     dc.b    "Sorry for the delay",10
  2199.     dc.b    "@ ",10
  2200.     dc.b    "Speed a parcel is",10
  2201.     dc.b    "comming.",10
  2202.     dc.b    " ",10
  2203.     dc.b    "Ghost where are you?",10
  2204.     dc.b    " ",10
  2205.     dc.b    "Rotox giz a call",10
  2206.     dc.b    "@ ",10
  2207.     dc.b    "mUb now I wonder",10
  2208.     dc.b    "when the modem is",10
  2209.     dc.b    "comming back HINT",10
  2210.     dc.b    "HINT!",10
  2211.     dc.b    "@====================",10
  2212.     dc.b    " ",10
  2213.     dc.b    " ",10
  2214.  
  2215.     dc.b    "!text ends!",10
  2216.     dc.b    " ",10
  2217.     dc.b    " ",10
  2218.     dc.b    " ",10
  2219.     dc.b    " ",10
  2220.     dc.b    " ",10
  2221.     dc.b    " ",10
  2222.     dc.b    " ",10
  2223.     dc.b    " ",10
  2224.     dc.b    " ",10
  2225.  
  2226.     dc.b     0
  2227. text:
  2228. ;         1234567890
  2229.     dc.b    "WELCOME",13
  2230.     DC.B    "          ",13
  2231.     DC.B    "TO RETINA",13
  2232.     DC.B    "          ",13
  2233.     DC.B    "BURN ONE",13
  2234.     DC.B    "          ",13
  2235.     DC.B    "BY CYLON",13
  2236.     DC.B    "          ",13
  2237.     DC.B    "DIMENSION",13
  2238.     DC.B    "          ",13
  2239.     DC.B    "X",13
  2240.     DC.B    "          ",13
  2241.     DC.B    "RAVE MUSIC",13
  2242.     DC.B    "          ",13
  2243.     DC.B    "BY ZADD",13
  2244.     DC.B    "          ",13
  2245.     DC.B    "NOW",13
  2246.     DC.B    "          ",13
  2247.     DC.B    "RAVE",13
  2248.     DC.B    "          ",13
  2249.     DC.B    "ON",13
  2250.     DC.B    "          ",13
  2251.     DC.B    "THE",13
  2252.     DC.B    "          ",13
  2253.     DC.B    "EXTASY",13
  2254.     DC.B    "          ",13
  2255.     DC.B    "OF",13
  2256.     DC.B    "          ",13
  2257.     DC.B    "DIMENSION",13
  2258.     DC.B    "          ",13
  2259.     DC.B    "X",13
  2260.     DC.B    "          ",13
  2261.     DC.B    "SOURCECODE",13
  2262.     DC.B    "          ",13
  2263.     DC.B    "SIZE",13
  2264.     DC.B    "          ",13
  2265.     DC.B    "SIXTY FOUR",13
  2266.     DC.B    "          ",13
  2267.     DC.B    "KILO BYTES",13
  2268.     DC.B    "          ",13
  2269.     DC.B    "HI ARE YOU",13
  2270.     DC.B    "          ",13
  2271.     DC.B    "HAPPY GUYZ",13
  2272.     DC.B    "          ",13
  2273.     DC.B    "I AM DEAD",13
  2274.     DC.B    "          ",13
  2275.     DC.B    "TIRED I",13
  2276.     DC.B    "          ",13
  2277.     DC.B    "HAVE BEEN",13
  2278.     DC.B    "          ",13
  2279.     DC.B    "CODING FOR",13
  2280.     DC.B    "          ",13
  2281.     DC.B    "EIGHTEEN",13
  2282.     DC.B    "          ",13
  2283.     DC.B    "HOURS NOW",13
  2284.     DC.B    "          ",13
  2285.     DC.B    "AND STU",13
  2286.     DC.B    "          ",13
  2287.     DC.B    "HAS BEEN",13
  2288.     DC.B    "          ",13
  2289.     DC.B    "ON THE",13
  2290.     DC.B    "          ",13
  2291.     DC.B    "PHONE FOR",13
  2292.     DC.B    "          ",13
  2293.     DC.B    "AN HOUR",13
  2294.     DC.B    "          ",13
  2295.     DC.B    "OR MORE",13
  2296.     DC.B    "          ",13
  2297.     DC.B    "I NEED",13
  2298.     DC.B    "          ",13
  2299.     DC.B    "SLEEP",13
  2300.     DC.B    "          ",13
  2301.     DC.B    "LET ME GO",13
  2302.     DC.B    "          ",13
  2303.     DC.B    "TO BED ITS",13
  2304.     DC.B    "          ",13
  2305.     DC.B    "TWO AM",13
  2306.     DC.B    "          ",13
  2307.     DC.B    "GOOD",13
  2308.     DC.B    "          ",13
  2309.     DC.B    "NIGHT",13
  2310.     DC.B    "ZZZZZZZZZZ",13
  2311.     DC.B    "  ",13
  2312.     DC.B    "    ",13
  2313.     DC.B    "      ",13
  2314.     DC.B    "        ",13
  2315.     DC.B    "          ",13
  2316.     DC.B    0
  2317.  
  2318. anim_data:
  2319.      dc.b    1,3,1,3,1,3,1,3,1,3,3,3,8,9,10,11,8,9,10,11,8,9,10,11
  2320.     dc.b    12,12,12,4,5,6,7,4,5,6,7,4,5,6,7,2,2,12,12
  2321.     dc.b    7,6,5,4,7,6,5,4,7,6,5,4,2,2,13,14,15,16,13,14,15,16
  2322.     dc.b    2,2,2,2,2,16,16,16,13,13,13,14,14,14,15,15,15,16,16,16
  2323.     dc.b    1,1,3,3,12,12,12,12
  2324.     dc.b     0
  2325. an_fin:
  2326. spin_data:
  2327.     dc.b    4,5,6,7,0    
  2328. spin_fin:
  2329.     even
  2330.  
  2331. black1:
  2332.     dc.w     0,0,0,0
  2333.     dc.w     0,0,0,0
  2334.     dc.w     0,0,0,0
  2335.     dc.w     0,0,0,0
  2336.     dc.w     0,0,0,0
  2337.     dc.w     0,0,0,0
  2338.     dc.w     0,0,0,0
  2339.     dc.w     0,0,0,0
  2340. black2:
  2341.     dc.w     0,0,0,0
  2342.     dc.w     0,0,0,0
  2343.     dc.w     0,0,0,0
  2344.     dc.w     0,0,0,0
  2345.     dc.w     0,0,0,0
  2346.     dc.w     0,0,0,0
  2347.     dc.w     0,0,0,0
  2348.     dc.w     0,0,0,0
  2349.  
  2350. block1:        dc.w 0
  2351. tabpos:        dc.w 0
  2352. block2:        dc.w 0
  2353. collist:
  2354.     dc.w $f,$c,$a,7,5,2,0,0,0,0,0,0,0,0,0
  2355.     dc.w $f0,$c0,$a0,$70,$50,$20,0,0,0,0,0,0,0,0,0
  2356.     dc.w $f00,$c00,$a00,$700,$500,$200,0,0,0,0,0,0,0,0,0
  2357.     dc.w $ff0,$cc0,$aa0,$770,$550,$220,0,0,0,0,0,0,0,0,0
  2358.     dc.w $ff,$77,$22,0,0,0,0,0,0,0,0,0,0,0,0
  2359.     dc.w $ff0,$550,$220,0,0,0,0,0,0,0,0,0,0,0,0
  2360.     dc.w $f0f,$707,$505,$202,0,0,9,0,0,0,0,0,0,0,0
  2361.     dc.w $fff,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2362.     dc.w $fff,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  2363. coll_finish:
  2364. ;*-------------------------------------------------------------------------------*
  2365.  
  2366.     section screendata,data_c
  2367.     even    
  2368.  
  2369. TEXT_SCREEN:
  2370.     ds.b    40*40
  2371. screen:    
  2372.     incbin graf1.BIN
  2373.     incbin TEKNO.BIN
  2374.     incbin graf2.BIN
  2375. cog:
  2376.     incbin frame.BIN
  2377. cogend:
  2378.     incbin spin.bin
  2379.     incbin dmx.bin
  2380.     incbin arrow001.bin
  2381.     incbin arrow002.bin
  2382.     incbin arrow003.bin
  2383.     incbin arrow004.bin
  2384. animend:
  2385. xxxx:    incbin xxxx001
  2386. xxx3:    incbin xxxx002
  2387. xxx2:    incbin xxxx003
  2388. xxx1:    incbin xxxx004
  2389.     
  2390.     section screendata2,data_c
  2391.     even    
  2392. cyclescreen:    incbin halfCYcLepic 
  2393.     even
  2394. blank:    ds.b    40*18            ;16 blank lines
  2395. font32:
  2396.     incbin oval_font.bin    
  2397. font16:
  2398.     incbin    testfont.bin    16*32-1456 91 chars
  2399.     section screendata3,data_c
  2400.     even    
  2401. introp:    incbin roundx.bin
  2402. introg: equ introp+64    
  2403. back_pic:
  2404.     incbin xpic.bin
  2405. ;*-------------------------------------------------------------------------------*
  2406.     section nonechipgfx,data
  2407.  
  2408. backdr1:    incbin xpic.bin
  2409. backdr2:    incbin back2.bin
  2410. backdr3:    incbin back3.bin
  2411. backdr4:    incbin back4.bin
  2412. backdr5:    incbin back5.bin
  2413. back_end:
  2414.  
  2415. fl1:        incbin flare001
  2416. fl2:        incbin flare002
  2417. fl3:        incbin flare003
  2418. fl4:        incbin flare004
  2419. fl5:        incbin flare005
  2420. fl_rend:
  2421.